📄 demo_6_repeated_inheritance_virtual_base_class_1.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 + -