C++语言程序设计(清华大学郑莉)07.ppt
《C++语言程序设计(清华大学郑莉)07.ppt》由会员分享,可在线阅读,更多相关《C++语言程序设计(清华大学郑莉)07.ppt(73页珍藏版)》请在优知文库上搜索。
1、1第七章第七章 继承与派生继承与派生C+语言程序设计C+语言程序设计2本章主要内容本章主要内容l类的继承类的继承l类成员的访问控制类成员的访问控制l单继承与多继承单继承与多继承l派生类的构造、析构函数派生类的构造、析构函数l类成员的标识与访问类成员的标识与访问l深度探索深度探索C+语言程序设计3类的继承与派生类的继承与派生l保持已有类的特性而构造新类的过程保持已有类的特性而构造新类的过程称为继承。称为继承。l在已有类的基础上新增自己的特性而在已有类的基础上新增自己的特性而产生新类的过程称为派生。产生新类的过程称为派生。l被继承的已有类称为基类(或父类)。被继承的已有类称为基类(或父类)。l派生
2、出的新类称为派生类。派生出的新类称为派生类。C+语言程序设计4继承与派生问题举例继承与派生问题举例工具车轿车面包车小汽车卡车旅行车汽车汽车交通工具交通工具类的继承与派生C+语言程序设计5继承与派生问题举例继承与派生问题举例猴子猴子狮子虎猎豹猫猫鸟鸟动物动物类的继承与派生猫科猫科C+语言程序设计6继承与派生问题举例继承与派生问题举例圆圆矩形矩形几何形状几何形状类的继承与派生C+语言程序设计7继承与派生问题举例继承与派生问题举例兼职技术人员销售经理管理人员销售人员雇员类的继承与派生C+语言程序设计8继承与派生的目的继承与派生的目的l继承的目的:实现代码重用。继承的目的:实现代码重用。l派生的目的:
3、当新的问题出现,原有派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,程序无法解决(或不能完全解决)时,需要对原有程序进行改造。需要对原有程序进行改造。类的继承与派生C+语言程序设计9派生类的声明派生类的声明class 派生类名:派生类名:继承方式继承方式 基类名基类名 成员声明;成员声明;类的继承与派生C+语言程序设计10继承方式继承方式l三种继承方式三种继承方式 公有继承 私有继承 保护继承l不同继承方式的影响主要体现在:不同继承方式的影响主要体现在:派生类成员成员对基类成员的访问权限通过派生类对象对象对基类成员的访问权限类成员的访问控制C+语言程序设计11公有继承公有继承
4、(public)l基类的基类的public和和protected成员的访问成员的访问属性在派生类中属性在派生类中保持不变保持不变,但,但基类的基类的private成员成员不可不可直接直接访问访问。l派生类中的派生类中的成员函数成员函数可以直接访问基类可以直接访问基类中的中的public和和protected成员,但不能成员,但不能直接访问基类的直接访问基类的private成员。成员。l通过派生类的通过派生类的对象对象只能访问基类的只能访问基类的public成员。成员。类成员的访问控制C+语言程序设计12例例7-1 公有继承举例公有继承举例/基类基类PointPoint类的定义类的定义class
5、 Point class Point public:public:/公有函数成员公有函数成员void void initPointinitPoint(float x = 0, float y = 0) (float x = 0, float y = 0) this-x = x; this-y = y; this-x = x; this-y = y;void move(float void move(float offXoffX, float , float offYoffY) ) x += x += offXoffX; y += ; y += offYoffY; ; float float g
6、etXgetX() const return x; () const return x; float float getYgetY() const return y; () const return y; private:private:/私有数据成员私有数据成员float x, y;float x, y;类成员的访问控制class Rectangle: public Point class Rectangle: public Point /派生类定义部分派生类定义部分public:public:/新增公有函数成员新增公有函数成员void void initRectangleinitRecta
7、ngle(float x, float y, float w, (float x, float y, float w, float h) float h) initPointinitPoint(x, y); (x, y); /调用基类公有成员函数调用基类公有成员函数this-w = w;this-w = w;this-h = h;this-h = h; float float getHgetH() const return h; () const return h; float float getWgetW() const return w; () const return w; privat
8、e:private:/新增私有数据成员新增私有数据成员float w, h;float w, h;13#include #include #include #include using namespace std;using namespace std;intint main() main() Rectangle Rectangle rectrect; ;/定义定义RectangleRectangle类的对象类的对象/设置矩形的数据设置矩形的数据rect.rect.initRectangleinitRectangle(2, 3, 20, 10);(2, 3, 20, 10);rect.rect
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计 清华大学 07