crfoJkvKsm
基类的private在派生类是不能被访问的
不能被访问不是没有继承,继承下来了,但是没有访问的权限,我们可以通过查看子类所占的字节数查看来验证。
派生类内部都可以访问基类的公有成员和保护成员
派生类对象可以赋值给基类的指针,引用,对象,但是基类一般情况下不能赋值给派生类,除非进行强制类型转换,但是强制类型转换可能会引发问题,如果基类的指针没有指向派生类对象的话,会有越界的问题,所以一般不这么做。
赋值兼容规则 —public继承
子类对象可以赋值给父类对象
父类对象不能赋值给子类对象
如果用父类给子类对象赋值的时候编译器直接报错,为什么?
子类继承于父类,它含有父类的部分,又做了扩展。如果子类对象赋值给父类变量,则使用该变量只能访问子类的父类部分(因为子类含有父类的部分,所以不会有问题)但是,如果反过来,这个子类变量如果去访问它的扩充成员变量,就会访问不到,因为父类不包含该部分,会 内存越界 一般情况,子类在继承了父类的方法和属性外,它还增加了新的属于自己的方法和属性,此时用父类的对象去赋值给子类的对象,这些新的方法和属性要怎么操作呢,C++为了避免这样的现象出现,当你用父类对象给子类赋值时就会报错。但是如果把父类强制转换为子类的类型,可以编译通过。