error C2143: 语法错误 : 缺少“;”(在“*”的前面)
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
出现问题原因:定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就会报这样的错误,如下:
//a.h #include "b.h" class A { .... private: B b; };
//b.h #include "a.h" class B { .... private: A a; };
一编译,就出现了一个互包含的问题了。
解决办法:此时用到类的前置声明,问题就解决了,如下:
//a.h //#include "b.h" class B; class A { .... private: B b; };
//b.h #include "a.h" class B { .... private: A a; };