基类和派生类的关系

1 基类和派生类之间的特殊关系

假设有基类BaseClassA,它有方法MethodA()和私有方法MethodB();另有派生类InheritClassA继承于BaseClassA,它具有方法MethodC();

(1)派生类对象可以调用基类的方法。前提是该方法不能是私有的方法。

<pre name="code" class="cpp">InheritClassA class1;
class1.MethodA();              // 调用基类的公有方法

 但是,私有方法不能被调用: 

class1.MethodB()               // 是不正确的

(2)基类指针可以在不进行显示转换的情况下指向派生类对象;基类引用可以在不进行显式转换的情况下引用派生类对象。

InheritClassA class1;
<pre name="code" class="cpp">BaseClassA & classRef = class1 ;
<pre name="code" class="cpp">BaseClassA * classPtr = &class1 ;

 
 

但是,基类指针或引用只能调用基类的方法。

classRef.MethodA();
classPtr->MethodA();
而不能

classRef.MethodC();
classPtr->MethodC();
还有,不能将基类对象和地址赋值给派生类引用和指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值