-
不是虚继承的情况下,实例化子类对象的时候,要分别执行其2个父类的父类构造函数,再分别执行2个父类的构造函数,因为继承关系中,必须实例化父类对象后(执行父类的构造函数)才能实例化子类对象(执行子类的构造函数),销毁的时候也要分别执行这个子类2个父类的析构函数及父类各自的父类的析构函数。<br> 用了虚继承后只执行一次爷爷构造函数一次爸爸构造函数(2个爸爸构造函数都只执行一次)一次孙子构造函数,爷父孙析构函数也是只执行一次。<br> 虚继承的情况下菱形继承作为最顶层的父类并没

查看全部 -



查看全部 -


查看全部 -
多继承是指一个子类继承多个父类
C多继承对父类的个数没有限制,继承方式可以是公共继承、保护继承和私有继承。
D多重继承与多继承不同,当B类从A类派生,C类从B类派生,此时成为多重继承。
查看全部 -
多继承的子类要用初始化列表的方式初始化子类的成员列表,实例化子类对象的时候,先执行父类的构造函数,父类的构造函数的执行顺序按照初始化成员列表的先后顺序执行。<br> 析构函数的执行顺序和构造函数的执行顺序相反 用初始化列表比较好的情况:传给构造函数的值要分别传给几个对象处理的时候,用 const 修饰的成员的时候,还有就是当初对象成员的时候。
查看全部 -
在最底层的类,要实例化对象,就必须执行继承量当中的每一个类<br> 在销毁的时候,逆序执行 无论继承有多少级,只要保持间接或者直接的关系,子类都可与自己的直接父类,或者是间接父类,称之为is a 的关系,并且能够通过父类的指针对直接子类或者是间接子类的对象进行操作
查看全部 -
如果多继承 省略 public,默认private继承,所以多继承的每个基类不仅逗号隔开,还要每个都表明是什么方式继承的



查看全部 -
基类指针指向派生类对象: Person *p = &soldier; 派生类对象初始化基类对象: Person p1 = soldier;
查看全部 -
父类对象可以接受子类对象,子类指针不能指向父类对象。
查看全部 -
查看全部
-


查看全部 -
包含头文件,用双引号“”和尖括号<>是不同的,编译器会搜索不同的路径 (1)如果用的是尖括号,则编译器会自动搜索自带的头文件库 (2)如果用的是双引号“”,则编译器会搜索我们自定义的路径下的头文件,所以用的时候就要注意了
查看全部 -
B类从A类公共派生,那么A类的公共成员函数成为B类的公共成员函数。
BB类从A类公共派生,那么A类的保护成员函数成为B类的保护成员函数。
CB类从A类公共派生,那么A类的私有成员函数不能被B类继承并使用。
查看全部 -
B类从A类派生,那么B类是A类的子类,A类是B类的超类。
BB类从A类派生,那么B类中含有A类的所有数据成员。
DB类从A类公共派生,那么可以在B类中直接使用A的公共及保护限定符的数据成员。
查看全部
举报