这是什么描述或含义: 例如:
class test;
class test
{
.....
};
最佳答案
C++(如 C)被设计为可由单遍编译器实现。在编译器需要在实际定义类之前知道符号引用类的情况下,前向引用是必要的。典型的例子是当两个类需要包含指向彼此的指针时。即
class B;
class A {
B* b;
};
class B {
A* a;
};
如果没有对 B 的前向引用,编译器将无法成功解析 A 的定义,并且您无法通过将 B 的定义放在 A 之前来解决问题。
在像 C# 这样需要二次编译器的语言中,您不需要前向引用
class A {
B b;
}
class B {
A a;
}
因为编译器的第一遍只是选择了所有的符号定义。当编译器进行第二遍时,它可以说“我知道 B 是一个类,因为我在第一遍看到了定义”。
关于c++ - 前向申报的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110096/