int main() {
B bb; //does not compile (neither does class B bb;)
C cc; //does not compile
struct t tt; //compiles
class B {}; //HERE is the class B defination
struct s { struct t * pt; }; //compiles
struct t { struct s * ps; };
return 0;
}
class C {};
我刚刚修改了给出的例子here。为什么前向声明不适用于类?
为什么说结构前向声明工作,而不是类前向声明?
它与名称空间有什么关系 - tag namespace
和typedef namespace
?我知道没有typedefs的结构定义会转到标记名称空间。
结构只是所有公共成员的类。所以,我期望他们的行为类似。
该块之前是否有任何代码?看起来你在B bb之前实际上没有任何前向声明; – John 2010-04-16 04:43:19