- 13
- 0
- 约1.92万字
- 约 61页
- 2019-11-06 发布于广东
- 举报
虽然函数在类的外部定义,但在调用成员函数时会根据类中函数的原型声明找到函数的定义(函数代码),从而执行该函数。 也可以将在类外部定义的函数声明为“内置函数”, 这样在编译时就将函数代码代入到类中的函数调用处,以提高程序执行效率。只需在函数定义的首行最左端加上inline即可。如: inline void stud∷ display( ) 15.4 继 承 与 派 生 15.4.1 继承与派生的概念 面向对象技术强调软件的可重用性。在C++中可重用性是通过“继承” 这一机制来实现的。因此,继承是C++的一重要组成部分。 前面介绍了类,一个类中包含了若干数据成员和成员函数。每一个类的数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。例如前面我们声明了学生基本数据的类stud: class stud {private : int num; char name[10]; char sex; public: void display( ) //对成员函数display的定义 {coutnum: numendl; coutname: nameendl; coutsex: sexendl; } }; 如果学校的某部门除了需要用到学号、姓名、性别以外,还需要用到年龄、地址等信息。当然可以重新声明另一个类: class stud 1 {private : int num; //此行原来己有 char name[10]; //此行原来己有 char sex; //此行原来己有 int age; char addr[20]; public: void display( ) ; //此行原来己有 {coutnum: numendl; //此行原来己有 coutname: nameendl; //此行原来己有 coutsex: sexendl; //此行原来己有 coutage: ageendl; coutaddress: addrendl;} }; 可以看到有相当一部分是原来已有的。很多人自然会想到能否利用原有声明的类作为基础,再加上新的内容即可,以减少重复的工作量。 C++提供的“继承” 机制就是为了解决这个问题。 举一个日常生活中的例子。如果已经定义了“马”的特征,现在需要说明什么是“公马” ,只需在“马”的特征的基础上增加“雄性”这一特征即可,不必从头说明什么是马。如果想进一步说明什么是“白色的公马”, 只需在“公马”的基础上再增加说明“颜色是白的”即可。也就是说:“公马”继承了“马”的全部特征,加上“雄性”的新特征。“白公马” 继承了“公马”的全部特征,再增加“白色”的特征。而“公马”是“马” 派生出来的一个分支,“白公马” 是“公马” 派生出来的一个分支。见图15.4示意。 在C++中所谓“继承” 就是在一个已存在的类的基础上建立一个新的类。已存在的类(好比“马”)称为“基类” 或“父类” 。新建立的类称为“派生类” 或“子类”。 见图15.5示意。 派生类继承了基类的所有数据成员和成员函数,并增加新的成员。 图15.4 图15.5 15.4.2 建立派生类的方法 先通过一个例子说明怎样通过继承来建立派生类。 例15.4通过继承来建立派生类。 假设已经声明了一个基类stud(见前面的介绍),在此基础上声明一个派生类student: class student: public stud //声明基类是stud { private: int age; //新增加的数据成员 char addr[30]; //新增加的数据成员 public: void display-1( )
原创力文档

文档评论(0)