06 继承与多态.ppt

二义性 如果一个派生类C从多个基类派生B1,B2,而这些B1 B2基类又有公共的基类B,则 基类B的成员在派生类C中有2份 对该基类B中声明的名字进行访问时,会产生二义性。 这个问题由虚基类来解决。 B B B1 B2 C 如: Class B{ public: int b;}; Class B1: public B{ private: int b1;}; Class B2: public B{ private: int b2;}; Class C: public B1, public B2 {public: int f(); private: int d;}; 定义: C c; 下面对b的访问是有二义性的: c.b c.B::b 下面对b的访问是正确的: c.B1::b b.B2::b 二义性 class A{ public: void fun(){coutA:fun()endl; } }; class B1:public A {public: void fun1(){coutB1:fun1()endl; } }; class B2:public A {public: void fun1(){coutB2:fun1()endl; } }; class D:public B1,public B2

文档评论(0)

1亿VIP精品文档

相关文档