7_15.cpp

来自「C++语言程序设计案例教程,郑莉编的书」· C++ 代码 · 共 34 行

CPP
34
字号
#include <iostream> 
using namespace std; 
class Base
{protected:
	int b;
public:
	Base(int i)	{b=i;		cout<<"Base constructor called "<<endl;	}
	void disp() {cout<<"Base: b="<<b<<endl;}
};
class Base1:public Base
{	int b1;
public:
	Base1(int i,int j):Base(j)	{b1=i;	cout<<"Base1 constructor called "<<endl;	}
};
class Base2:public Base
{	int b2;
public:
	Base2(int i,int j):Base(j)	{b2=i;	cout<<"Base2 constructor called "<<endl;	}
};
class Derived:public Base2,public Base1
{	int d;
public:
	Derived(int i,int j,int a,int b):Base1(j,a),Base2(j,b)
	{	d=i;		cout<<"Derived constructor called "<<endl;	}
	void disp() 	{cout<<"Derived: d="<<d<<endl;	}
};
int main()
{	Derived objD(1,2,3,4);	objD.disp();//语句1:同名隐藏
	objD.Base1::disp();//语句2:使用作用域运算符::解决二义性问题
	objD.Base2::disp();//语句3:使用作用域运算符::解决二义性问题
	//objD.Base::disp();//语句4:不能使用作用域运算符::解决间接基类二义性问题
	return 0;
} 

⌨️ 快捷键说明

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