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的结构定义会转到标记命名空间.
结构只是包含所有公共成员的类.所以,我希望他们的行为类似.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。