📄 demo_1_review_repeated_inheritance_ambiguity_1.cpp
字号:
//***************************************************
// 多继承的特例的重复继承下的二义性问题
// 解决方法一:作用域运算符"::"辨别
//***************************************************
# include <iostream.h>
class A //公共间接基类
{
public:
int a;
};
class B1:public A //直接基类
{
public:
int b1;
};
class B2:public A //直接基类
{
public:
int b2;
};
class C:public B1,public B2 //重复继承的派生类:有公共基类A中数据成员a的2个副本
{
public:
int c;
};
void main()
{
C cc; //调用默认构造函数创建派生类对象,其数据成员并没有被初始化!
// 复制继承的重复继承数据不一致性
cc.B1::a=100;
cc.B2::a=200;
cc.b1=300;
cc.b2=400;
// cout<<cc.c<<endl; //Warning: local variable 'cc' used without having been initialized
cc.c=cc.B1::a+cc.B2::a+cc.b1+cc.b2;
cout<<cc.c<<endl;
return;
}
/*
1000
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -