跳到主要内容

简述C++定义和声明的区别 ?

参考答案:

在C++中,定义(Definition)和声明(Declaration)是两个经常被提及但容易混淆的概念。下面是它们之间的主要区别:

声明(Declaration)

  • 声明是为了告诉编译器变量的存在和它的类型,或者函数的名称、参数列表和返回类型。
  • 声明不会为变量分配内存。
  • 可以在任何地方进行声明,包括函数的内部和外部。
  • 多次声明是允许的,只要它们不会互相冲突。

例如:

int x;  // 声明一个整型变量x
void foo();  // 声明一个函数foo

定义(Definition)

  • 定义是为了创建变量或函数的实体。对于变量,定义会为它分配内存。对于函数,定义会给出它的实现。
  • 定义只能在全局作用域或命名空间中进行,不能在函数的内部进行。
  • 多次定义会导致链接错误。

例如:

int x = 10;  // 定义并初始化一个整型变量x

void foo() {
    // ...函数实现...
}

所以,总的来说,声明只是告诉编译器一个实体的存在,而定义是实际创建这个实体的过程。在C++编程中,通常我们会先声明变量或函数,然后在适当的地方进行定义。