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

来源:互联网 发布:123d建模软件 编辑:程序博客网 时间:2024/06/03 19:28

泛化/具体化层次结构建立了一种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的成员函数可以使用,调用函数和派生类函数均不能访问。

 

 

 

原创粉丝点击