我正在使用 C 。
我需要創建兩個相互參考的類。
像這樣的東西:
class A {
private:
B b;
//etc...
};
class B {
private:
A a;
//etc...
};
我怎樣才能做到這一點?
對不起我的英語不好,謝謝你幫助我:)
uj5u.com熱心網友回復:
即使在原則上你也不能這樣做,因為單個A物件將包含 aB包含另一個A,它包含另一個 B和另一個 A...
如果你只是想要一個參考,你可以簡單地做
class B; // forward declaration
class A {
B& b_; // reference
public:
explicit A(B& b) : b_(b) {}
};
class B {
A a_;
public:
B() : a_(*this) {}
};
現在每個都B包含一個Awhich 指代B它所在的位置。
但是請注意,您不能在 的建構式中使用b(or b_)做任何事情A,因為它所參考的物件尚未完成自身的創建。
指標也可以作業——當然A,B它們都可以有參考而不是B包含直接物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/418007.html
標籤:
