#include<iostream>
using namespace std;
//动物类
class Animal
{
public:
int m_Age;
};
//利用虚继承 解决菱形继承的问题
//继承之前 加上关键字virtual变成虚继承
class Sheep : virtual public Animal {};
//驼类
class Tuo : virtual public Animal {};
//羊驼类
class SheepTuo :public Sheep, public Tuo {};
void test01()
{
SheepTuo st;
st.Sheep::m_Age = 11;
st.Tuo::m_Age = 22;
//当菱形继承,两个父类拥有相同数据,需要加以作用域区分
//cout << st.m_Age << endl;
cout << "st.Sheep::m_Age=" << st.Sheep::m_Age << endl;
cout << "st.Tuo::m_Age=" << st.Tuo::m_Age << endl;
cout << "st.m_Age=" << st.m_Age << endl;
}
int main()
{
test01();
return 0;
}
类的菱形继承问题
于 2023-03-05 04:28:53 首次发布