class A{
public:
B b;
};
class B{
public:
A a;
};
我不能在 A 类“B b”中写入,因为 B 类定义如下。有什么办法让它发挥作用吗?
thanks
这不可能。您需要在其中一个类中使用指针或引用。
class B; // forward declare class B
class A {
public:
B * b;
};
class B {
public:
A a;
};
至于为什么不可能:A包含B包含A包含B......递归没有尽头。
如果您习惯于默认情况下所有对象变量都是指针/引用的语言(例如 java),请注意 c++ 中的情况并非如此。当你写的时候class A { public: B b; };
一套完整的B
is embedded进入A,则不是提到在 A 中。在 C++ 中,您需要明确表明您想要一个引用 (B & b;
) 或指针 (B * b;
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)