C++的继承机制实现软件可重用。
有时两个类的内容基本相同或有一部分相同。
例如,已声明了类student:
class Student
{ private :
int num;
string name;
char sex;
public:
void display( )
{cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl;}
};
如果另一个部门除了需要已有的数据外,还需要地址信息,你可以再声明另一个类:
class Student1
{private :
int num;
string name;
char sex;
char addr[20];
public:
void display()
{ cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl;
cout <<"address:"<< addr<<endl;}
};
可以看到新类中大部分成员是原来已有的。人们自然会想到能否利用原来声明的类student,加上新内容即可,以减少重复的工作。这就引出C++的继承机制。
所谓继承,是在已存在的类A 的基础上建立一个新类B。类A称为基类或父类,类B 称作派生类或子类。子类从父类获得其已有的特性,这种现象称作类的继承。从另一个角度看从父类产生子类,称作类的派生。
一个基类可以派生出多个派生类,每个派生类又可以作为基类再派生出新的派生类。一个派生类只从一个基类派生,称作单继承。用图5.3表示。


一个派生类也可从多个基类派生,也就是说一个派生类可以有两个或多个基类。一个派生类有两个或多个基类的称作多重继承。用图5.4表示。基类和派生类的关系可以表述为:派生类是基类的扩充,而基类是派生类的抽象。


