本章内容:
is-a 关系的继承;
如何以公有方式从一个类派生出另一个类;
保护访问;
构造函数成员初始化列表;
向上和向下强制转换;
虚成员函数;
早期(静态)联编与晚期(动态)联编;
抽象基类;
纯虚函数;
何时及如何使用公有继承
类库由类声明和实现构成的。通常,类库是以源代码的方式提供的。
C++提供了比修改代码更好的方法来扩展和修改类。这种方法叫做类继承,它能够从已有的类派生出新的类,而派生类继承了原有类(称为基类)的特征,包括方法。通过继承派生出的类通常比设计新类要容易。下面是可以通过继承完成的一些工作:
可以在已有类的基础上添加功能;
可以给类添加数据;
可以修改类方法的行为;
面向对象编程的主要目的之一是提供可重用的代码;
C++类提供了更高层次的重用性,类库由类声明和实现构成,因为类组合了数据表示和类方法;
C++提供了比修改代码更好的方法来扩展和修改类——类继承;
13.1 一个简单的基类
从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。下面首先建立一个基类:
// tabtenn0.h -- a table-tennis base class#ifndef TABTENN0_H_#define TABTENN0_H_#include using std::string;// simple base classclass TableTennisPlayer{private: string firstname; string lastname; bool hasTable;public: TableTennisPlayer (const string & fn = "none