-
继承类声明格式查看全部
-
不是虚继承的情况下,实例化子类对象的时候,要分别执行其2个父类的父类构造函数,再分别执行2个父类的构造函数,因为继承关系中,必须实例化父类对象后(执行父类的构造函数)才能实例化子类对象(执行子类的构造函数),销毁的时候也要分别执行这个子类2个父类的析构函数及父类各自的父类的析构函数。<br> 用了虚继承后只执行一次爷爷构造函数一次爸爸构造函数(2个爸爸构造函数都只执行一次)一次孙子构造函数,爷父孙析构函数也是只执行一次。<br> 虚继承的情况下菱形继承作为最顶层的父类并没有进行参数的传递,也就是参数只使用了顶层父类的默认参数而无法从子类中获得传入的参数 正因为继承了2个爷爷的数据成员才能给他赋2个值,如果只有1个数据成员就只能得到一个值。继承到2个值是因为2个爸爸类分别继承爷爷类的数据成员,在继承给孙子类,孙子类就得到了2个爷爷类的数据成员,本质上是爸爸类分别有一个爷爷类的数据成员。(用虚继承解决)查看全部
-
使用虚继承后 person的构造函数和析构函数只被调用了一次 农民工中只有一份数据 在虚继承的情况下 作为菱形继承最顶层的父类 并没有进行参数的传递 使用了默认的参数 无法获得从子类中传入的参数查看全部
-
在 菱形继承中 重定义是必然出现的 这时要用宏定义 来避免重复定义查看全部
-
在构建对象时传参 调用构造函数 通过初始化列表 再调用基类的构造函数往那里面 传参查看全部
-
使用虚继承 就能使农民工类只继承一个 person类 注意写法查看全部
-
菱形继承会导致数据冗余,一个对象中会有两份同一父类的数据。用虚继承可以解决冗余问题。就是两个爸爸类用虚公有继承的方式继承同一个父类,然后孙子类按照多继承的方式(写法)继承两个爸爸类,就可以只继承到一个爷爷类的数据,若不用虚公有继承的方式,就会导致孙子类继承到2个重复的爷爷类数据成员或者成员函数查看全部
-
私有继承查看全部
-
保护继承查看全部
-
公有继承,数据成员之间关系查看全部
-
注意函数查看全部
-
宏定义解决重定义查看全部
-
继承属性查看全部
-
多继承 注意写法 逗号隔开 如果不写继承方式,系统默认是private继承查看全部
-
将函数定义在main函数的上方 在使用的时候 不用在进行独立的声明了 参数是对象时 在接受参数时 会临时的实例化一个对象 在函数执行完后 临时对象被销毁 参数是引用 在传入参数时 会为参数起一个别名 使用引用和指针 不会产生临时变量 效率比较高查看全部
举报
0/150
提交
取消