基类和派生类的关系

来源:互联网 发布:老滚5捏脸数据导入 编辑:程序博客网 时间:2024/05/17 03:11

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();
还有,不能将基类对象和地址赋值给派生类引用和指针。

0 0