类的继承与多态性.pptVIP

  • 3
  • 0
  • 约1.02万字
  • 约 58页
  • 2023-08-04 发布于广东
  • 举报
执行C的构造函数前先调用B1、B2构造函数;执行B1、B2构造函数前先分别调用A的构造函数。 A B1 B2 C A为C的公共基类 eg. 数据成员二义性 三、混合多继承中的构造函数 class C:public B1,public B2 { }; 当前第30页\共有58页\编于星期三\12点 1、数据成员二义性 假设图中类A有数据成员a, 则C中有两个a成员,a是哪个 派生类的成员?产生了二义性。 解决方法: (1)加类名分辨符B1:: 或 B2:: (2)定义虚基类 eg1. 数据成员二义性 A(a) B1(a,b1) B2(a,b2) C(a,b1,b2,c) 四、多继承中二义性问题的解决 当前第31页\共有58页\编于星期三\12点 2、函数成员二义性 B1,B2中都含有print() 成员函数,C继承了B1,B2, 则C中有两个print()函数。 解决方法:加类区分符:: eg2. 函数成员二义性 B1(print()) B2(print()) C 当前第32页\共有58页\编于星期三\12点 §9.3 虚基类 消除数据成员二义性的两种方法的区别: (1)”类名::”法:消除二义性同时实现程序设计的多态性,但在派生类对象中存在多个公共基类的同名数据成员

文档评论(0)

1亿VIP精品文档

相关文档