#ifndef CLASSA_H_#define CLASSA_H_class B;class A {public: A(); ~A(); int getCount();private: static int _count; int _num; B _b1; //ERROR};
编译说:
A.h:23:错误:字段’_b1’的类型不完整
我注意到如果我制作B型*的_b1,问题就解决了.
那么前向声明只适用于指针类型吗?
如果我想要A持有B对象,我必须#inlcude“B.h”?
谢谢!
解决方法 编译器必须知道B类的确切定义,以确定至少给A类的大小.如果使用指针,它就知道它的大小.请注意,循环依赖是不可能的.如果你想
class A { B b; };class B { A a; };
然后A和B必须有无限大小……
总结以上是内存溢出为你收集整理的c – 转发声明生成不兼容的类型错误全部内容,希望文章能够帮你解决c – 转发声明生成不兼容的类型错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)