多继承

一、概念

  一个类有多个直接基类的继承关系称为多继承,多继承会引入其他问题:

  1.祖先类obj中有一个变量a,然后有P1和P2两个类分别都继承obj类,再有C1类多继承P1和P2时,定义的对象使用变量a时,编译不知道引用P1的还是P2的变量a,会编译报错(变量a的二义性),可以使用虚继承解决此问题,

    如:class P1:virtual public obj   //加上virtual后,c++编译器会给变量偷偷添加属性,这样此类的sizeof()会增加4个字节;

  2.如果P1和P2类同时含有同名的成员,多继承P1和P2时,则不能通过虚继承来解决,使用同名变量需要作用域分析符来区分,否则编译报错;

  3.添加虚继承后,构造和析构的函数会多调用一遍;

 

posted @ 2019-02-23 10:05  星星之火可以燎源  阅读(451)  评论(0编辑  收藏  举报