我无法从顶级类Example下的其他类中定义对象:
class B;
class a
{
public:
a(){ cout << "a\n"; }
~a(){ cout << "~a\n"; }
private:
B ob;
};
class B
{
public:
B(){ cout << "B\n"; }
~B(){ cout << "~B\n"; }
a ob;
};
int main()
{
B r;
system("pause");
}
即使我在上面编写(类B;),也无法在a类中创建对象的问题
您可以通过将B
对象指针传递到a
构造函数中来解决您的问题。如果更改B
类包含一个指针来a
,你的递归可以解决。实际上,您正在通过创建一个B
包含一个object的对象来创建一个无限循环,该对象a
包含一个object B
,依此类推。
class B
{
public:
B(a* _ob) : ob(_ob) { cout << "B\n"; }
~B(){ cout << "~B\n"; }
a* ob;
};
int main()
{
a _a;
B r(_a);
system("pause");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句