菱形继承-多继承-类和对象

2023-12-28 00:43:07

菱形继承的概念:

两个派生类继承同一个基类

又有某个类同时继承着两个派生类

这种继承被称为菱形继承,或者钻石继承

#include<iostream>
using namespace std;
//动物类
class Animal
{
public:
	int m_Age;
};
//利用虚继承 解决菱形继承的问题
//继承之前 加上关键字 virtual 变为虚继承
// //Animal类被称为 虚基类
//羊类
class Sheep:public virtual Animal{};
//驼类
class Tuo:public virtual Animal{};
//羊驼类
class SheepTuo:public Sheep, public Tuo{};
void test01()
{
	SheepTuo st;
	st.Sheep::m_Age = 18;
	st.Tuo::m_Age = 28;
	//当菱形继承,两个父类拥有相同数据,需要加以作用域区分
	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();
	system("pause");
	return 0;
}

文章来源:https://blog.csdn.net/xms12_3/article/details/135257740
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。