在C++中,不管哪一种继承方式下派生类都会把父类全部的数据继承,区别在因而否能访问
赋值兼容规则以下:
1.能够直接用派生类对象给基类对象赋值
2.能够直接用派生类对象的地址给基类指针赋值
3.能够使用派生类对象为基类的引用直接进行初始化
但该原则不能反向运行,愿意以下:
实例化一个类型时要调动构造方法,而子类在构造前要先构造父类对象,编译器提早开辟出子类加父类总大小的空间。父类成员构造完成后先放入,再把子类成员构造出来加在后面,而继承则是把全部成员放在一块儿构成子类对象。子类能够给父类赋值是由于子类成员包括了父类成员,赋值时只是用到了和父类相同的空间(称之为对象切片),父类须要什么成员,子类均可以一一提供。而反过来父类作不到提供子类须要的全部的成员。ide