7_18_1.cpp

来自「C++案例教程源代码」· C++ 代码 · 共 34 行

CPP
34
字号
#include <iostream> 
using namespace std; 
class Base
{protected:
	int b;
public:
	Base(int i)	{b=i;	}
	void disp() {cout<<"Base: b="<<b<<endl;}
};
class Base1:public Base
{	int b1;
public:
	Base1(int i,int j):Base(j)	{b1=i;	}
};
class Base2:public Base
{	int b2;
public:
	Base2(int i,int j):Base(j)	{b2=i;	}
};
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;	}
	void disp() 	{cout<<"Derived: d="<<d<<endl;	}
};
int main()
{	Derived objD(1,2,3,4);
	objD.disp();		//语句1:同名隐藏
	objD.Base::disp();	//语句2:有二义性,不能区分objD.Base1::disp()与objD.Base2::disp()
	objD.Base1::disp();//语句3:通过作用域标识符访问Base1继承来的disp()
	objD.Base2::disp();//语句4:通过作用域标识符访问Base2继承来的disp()
	return 0;
}

⌨️ 快捷键说明

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