码迷,mamicode.com
首页 > 其他好文 > 详细

赋值兼容原则

时间:2020-03-13 19:09:14      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:一起   需要   初始化   数据   指针   大小   对象   包括   完成后   

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

赋值兼容原则

标签:一起   需要   初始化   数据   指针   大小   对象   包括   完成后   

原文地址:https://blog.51cto.com/14289397/2478117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!