为什么我不能多声明一个类

dee*_*eeJ 7 c++

我可以做这个

extern int i;
extern int i;
Run Code Online (Sandbox Code Playgroud)

但是我不能对班级做同样的事情

class A {
..
}
class A {
..
}
Run Code Online (Sandbox Code Playgroud)

虽然在这两种情况下都没有分配内存.

Hen*_*man 24

以下是声明:

extern int i;
class A;
Run Code Online (Sandbox Code Playgroud)

接下来的两个是 定义:

int i;
class A { ... }
Run Code Online (Sandbox Code Playgroud)

规则是:

  • 定义也是一种声明.
  • 你必须先"看到"一个项目的声明才能使用它.
  • 重新申报是可以的(必须相同).
  • 重新定义是一个错误(一个定义规则).

  • 你可以添加"A类;" 事实上,是A类的宣言. (6认同)
  • 对于它的价值,这被称为一个定义规则. (3认同)