C++ 虚基类

假设D类继承了B,C类,B,C类都继续了A类,默认情况下,D类中就有两份A类的成员变量和函数。如果要把他们合二为一,应该把类A定义为虚基类,使用virtual关键字.


#include 
using namespace std;

class A
{
public:
	int x;
};
class B :virtual public A
{
public:
	int y;
};
class C:virtual public A
{
public:
	int y;
};
class D:public B,public C
{

};

int main()
{
	//可以看到,d.B::x,d.C::x,d.x输出是一样的
	D d;
	d.B::x=5;
	cout<

© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记