#include<iostream>
using namespace std;
class Animal
{
protected:
int a;
public:
Animal(int x):a(x)
{
cout<<"Animal a = "<<a<<endl;
}
~Animal()
{
cout<<"Destructing Animal "<<endl;
}
};
class Horse:public virtual Animal
{
protected:
int b;
public:
Horse(int x,int y):Animal(y),b(x)
{
cout<<"Horse from Animal a = "<<a<<endl;
cout<<"Horse b = "<<b<<endl;
}
~Horse()
{
cout<<"Destructing Horse"<<endl;
}
};
class Lv:public virtual Animal
{
protected:
int c;
public:
Lv(int x,int y):Animal(y),c(x)
{
cout<<"Lv from Animal a = "<<a<<endl;
cout<<"Lv c = "<<c<<endl;
}
~Lv()
{
cout<<"Destructing Lv
虚基类virtual
最新推荐文章于 2023-02-02 12:04:44 发布
本文深入探讨了C++中的虚基类概念,解释了如何使用虚基类解决多重继承时的二义性问题。通过实例展示了虚基类在多继承层次结构中的作用,以及如何实现单一实例化。同时,讨论了虚基类对内存布局的影响和性能考虑。
摘要由CSDN通过智能技术生成