www.gusucode.com > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序 > 《C++高级语言程序设计》PPT及全书例子源代码-源码程序/code/C++例题程序/第3章/s3_5/smain3_5_B.cpp

    //Download by http://www.NewXing.com
class A
{
	public:
	void Func( void );
};

// 派生类B公有继承基类A则隐含地继承了类A的接口Func
class B : public A{ };

// 派生类C公有继承基类A也隐含地继承了类A的接口Func
class C : public A{ };

// 派生类D公有继承基类B和C即间接继承类A也间接继承了类A的接口Func
class D : public B, public C{ };

void main( void )
{
	D ObjD;
	// 以下访问错误编译器无法确定访问以上哪个类的接口Func于是出现多义性
	// ObjD. Func();
	ObjD.B::Func(); // 通过作用域分辨符指明调用类B的Func()副本正确
	ObjD.C::Func(); // 通过作用域分辨符指明调用类C的Func()副本正确
}