钻石继承和虚继承
作者:互联网
钻石继承
在C++中,类是允许多继承的,多继承大大的提高了代码的复用、减少代码冗余、大大的提高了类的表现力,使得类更贴近现实中的事物,使用起来更为灵活,更面向对象。
钻石继承是多继承的一种情况如下图:类A中派生出类X 和类Y ,类X和类Y派生出类Z,那么类A称为公共基类,类Z称为汇合子类。
class A
{
public:
A(int data) : m_data(data)
{
cout << "A构造 : " << this << endl;
}
protected:
int m_data;
};
class X : public A
{
public:
X(int data) : A(data)
{
cout << "X构造 : " << this << endl;
}
int getData(void) const
{
return m_data;
}
};
class Y : public A
{
public:
Y(int data) : A(data)
{
cout << "Y构造 : " << this << endl;
}
void setData(int data)
{
m_data = data;
}
};
class Z : public X, public Y
{
public:
Z(int data) : X(data), Y(data)
{
cout << "Z构造 : " << this << endl;
}
};
int main(void)
{
Z z(0);
z.setData(100);
cout << "m_data = " << z.getData() << endl;
return 0;
}
标签:钻石,生出,继承,代码,大大的,data 来源: https://www.cnblogs.com/chay/p/10981000.html