赋值兼容规则

对于公有派生来说,可以将派生类的对象赋给基类的对象,反之是不可以的。
赋值兼容性规则可以总结为4点:
1、不允许将基类的对象赋给派生类的对象。
2、派生类的对象可以赋给基类的对象。
3、可将派生类的对象的指针赋给基类的指针变量。
4、派生类对象可以初始化基类型的引用。
 
在3、4两种情况下,使用基类的指针或引用时,只能访问从相应基类中继承来的成员,不允许访问
其他基类的成员或在派生类中增加的成员。
 

#include <iostream>
class Base {
private:
	int val;
     char bit1; }; class Child:public Base { private: char bit2; }; int main(void) { Base base1; Base *pbase; Child child; // child = base1; //错误,不允许将基类对象赋给派生类对象。 base1 = child; //正确,派生类的对象赋给基类的对象是可以的。 pbase = &child; //正确,派生类对象的指针赋给基类对象的指针是可以的。 Base &base2 = child; //正确,派生类对象可以初始化基类类型的引用。 return 0; }
为什么呢?

转载于:https://www.cnblogs.com/helloweworld/archive/2012/12/31/2840948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值