⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_6_repeated_inheritance_virtual_base_class_1.cpp

📁 对于一个初涉VC++的人来书
💻 CPP
字号:

//*********************************************************
// 重复继承的虚基类的构造函数
//*********************************************************

#include <iostream.h>

class A //声明基类A
{
public: //外部接口
	A(int n):nV(n) { } //带参数(非默认)的构造函数
	int nV;
	void fun() { cout<<"Member of A"<<endl; }
};

class B1: virtual public A //A为虚基类,派生B1类
{
public: //新增外部接口
	B1(int a):A(a) { } //注意派生类的成员初始化列表
	int nV1;
};

class B2: virtual public A //A为虚基类,派生B2类
{
public:	//新增外部接口
	B2(int a):A(a) {} //注意派生类的成员初始化列表
	int nV2;
};

class C: public B1, public B2 //派生类C声明
{
public:	//新增外部接口
	C(int a=0):A(a),B1(a),B2(a) {} //注意派生类的成员初始化列表
	int nVc;
	void fund() { cout<<"Member of D1"<<endl; }
};

void main() //程序主函数
{
//	C cc;      //定义C类对象cc(构造函数带默认形参)
	C cc(2);   //定义C类对象cc(构造函数带形参)

	cout<<cc.nV<<endl;

	cc.nV=2;   //使用直接基类
	cout<<cc.nV<<endl;

	cc.fun();
}

/*
0
2
Member of A
*********************
2
2
Member of A
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -