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