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 {};
为什么结构转发声明有效,而不是类前向声明?
它是否与命名空间有关 – 标记命名空间和typedef命名空间?我知道没有typedef的结构定义会转到标记命名空间.
结构只是包含所有公共成员的类.所以,我希望他们的行为类似.