0
我必須承認,我在制定這個問題時遇到了麻煩,但我會盡我所能做到精確。我試圖尋找我的問題的答案,但我懷疑我一直無法找到我正在尋找的東西,因爲我不確定該怎麼稱呼它。可能共享間接基類的基類實例嗎?
我有一個基類A和幾個從這個基類繼承的子類。然後,我創建另一個繼承自某些提到的子類的X類。我現在面臨的問題是,每個類繼承X,都有自己的類A的實例。下面的代碼應該更好地理解我的意思。
class A;
class B : public A;
class C : public A;
class X : public B, public C;
有沒有一種方法,使B類和C類份額A相同的情況下,當它們都爲同一類作爲間接基類?
舉一個我爲什麼要這樣的例子,讓我們看看這段代碼。
class A
{
int _x;
};
class B : public A
{
void outputX(){std::cout << A::_x << std::endl;
};
class C : public A
{
void setX(int x){A::_x=x;}
};
class X : public B, public C
{
C::setX(5);
// this will output an un-initialized _x,
// as B and C have their own version of A
B::outputX()
};
現在我意識到這似乎在這個例子中,而不必要在這裏,但我的實際情況,我喜歡認爲這將是一個很好的解決方案,如果B和C類X.共享一個實例
這是可能嗎?
解決了它,非常感謝! – skakri 2012-04-21 13:34:01
@ user1348317很高興聽到!如果你認爲答案合適,那麼你可以「接受」它。 – juanchopanza 2012-04-21 13:36:30
完成,並再次感謝。 – skakri 2012-04-21 13:40:58