Code Bye

若有两个类,互相的成员里都有另一个类的对象,该怎么办

写一个作业
有a类和b类,a类有一个成员是b类的对象,b类有一个成员是a类的对象;
vs2010运行程序,在声明对象那一句报错:
c4430: missing type specifier – int assumed. Note: C++ does not support default-int
解决方案

10

在b类里不要定义a的对象,定义a对象的指令,然后在b类定义前面声明a是一个类,然后在b类的实现里new一个a。

10

提前声明,不过只能用指针
class B;
class A
{
private:
    B* m_pb;
};
class B
{
private:
    A m_a;
};

20

定义对象之前,编译器必须看到完整的类定义。
所以用指针代替你的对象。

10

指针不需要看见全部类的定义,只需要声明即可。而定义需要完全看见类定义

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明若有两个类,互相的成员里都有另一个类的对象,该怎么办