简单继承(inheritance)的实现及访问限定

泛化/具体化层次结构建立了一种is-a关系。例如,人是一种灵长目动物,灵长目动物是哺乳动物,哺乳动物是动物。

派生是一中表示is-a关系的方式,你从类Mammal派生出新类Dog。由于Dog类从Mammal类继承了运动功能,因此你不必显式说明狗能运动。

在已有的类的基础上添加了新功能的类被称为从原来的类派生而来,原来的类被称为新类的基类。


派生的语法格式如下:

class derivedClass : accessType baseClass

例如要创建一个名为Dog的从Mammal类派生而来的新类,可以这样做:

class Dog : public Mammal

下面是具体实现:


注意Mammal类中的数据成员是保护型(protected),该种访问限定类型的主要用途是允许其派生类的成员函数(方法)访问基类的保护数据成员和函数。

即三种访问限定符的区别如下:

如果在一个函数中声明了一个对象,如,Mammal bigAnimal;


公有(public): 调用函数可以访问所有公有数据成员和函数。

      cout << bigAnimal.getAge();

保护(protected): 仅其派生类的成员函数可以访问。可以将Dog类的成员函数WagTail()改为如下:

      void Dog::WagTail(){cout << "I'm " << itsAge << " years old. I am wagging tail..../n";}

私有(private):仅bigAnimal的成员函数可以使用,调用函数和派生类函数均不能访问。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值