下载此文档

第04章 类的继承与派生.ppt


文档分类:IT计算机 | 页数:约37页 举报非法文档有奖
1/37
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/37 下载此文档
文档列表 文档介绍
24 二月 2018
C++面向对象程序设计
第4章类的继承与派生
继承与派生
继承的三种方式
派生类的构造函数和析构函数
多继承和虚基类
赋值兼容规则
1
24 二月 2018
C++面向对象程序设计
B继承与派生
基类与派生类
派生类的声明
派生类生成过程
2
24 二月 2018
C++面向对象程序设计
基类与派生类
以原有的类为基础产生新类,我们就说从原有的类派生出新类。在这个过程中原有的类称为基类,新类称为派生类。
汽车类派生出卡车类。在此过程中,我们称汽车类为基类,卡车类为汽车类的派生类。
面向对象程序设计提供了类的继承机制,该机制自动的为派生类提供了其基类的操作和属性,大大的提高了代码的重用率。
3
24 二月 2018
C++面向对象程序设计
派生类的声明
C++中声明派生类的形式为:
声明中的“基类名”是已经存在的类的名称,“派生类名”是在已存在的类的基础上通过添加成员而得到的新类。当派生类只有一个直接基类的继承情况,称为单继承。当派生类同时有多个基类的继承情况,称为多继承。C# B
class 派生类名: 继承方式基类名1, 继承方式基类名2, …,继承方式基类名n
{
派生类的成员声明;
};
4
24 二月 2018
C++面向对象程序设计
派生类生成过程
派生类生成过程中需要指定派生类的类名,继承方式和新增成员。
派生类的生成过程可分为三个步骤:吸收基类成员﹑改造基类成员和添加新的成员。
吸收基类成员:将基类除构造函数和析构函数以外的成员全部接受。
改造基类成员:根据继承方式决定基类成员在派生类中的访问控制问题。重载与覆盖P122
添加新的成员:派生类新增成员是派生类不同于基类的地方,也是继承和派生机制的关键所在。
5
24 二月 2018
C++面向对象程序设计
继承的三种方式(1)
公有继承
私有继承
保护继承
6
24 二月 2018
C++面向对象程序设计
公有继承
类的继承方式为公有继承的时候,基类的公有和保护成员在派生类中访问权限不变,而基类的私有成员在派生类中不可直接访问。
公有继承的应用举例。 P123
7
24 二月 2018
C++面向对象程序设计
class CStick : public CMeter
{ int m_nStickNum; // 声明一个私有数据成员
public:
void DispStick(); // 声明一个公有成员函数
}; // 注意分号不能省略
void CStick:: DispStick()
{ m_nStickNum = GetPos(); // 调用基类CMeter的成员函数
cout<<m_nStickNum<<’’;
}
从基类CMeter派生的CStick类除具有CMeter所有公有成员和保护成员外,还有自身的私有数据成员m_nStickNum和公有成员函数DispStick()。
注意:派生类中或派生类的对象可以使用基类的公有成员(包括保护成员),例如CStick的成员函数DispStick中调用了基类CMeter的GetPos函数
8
24 二月 2018
C++面向对象程序设计
私有继承
类的继承方式为私有继承的时候,基类中的公有和保护成员被吸收后成为派生类的私有成员,而基类的私有成员在派生类中不可直接访问。
私有继承应用举例。P125
9
24 二月 2018
C++面向对象程序设计
[例Ex_ClassPrivateDerived] 派生类的私有继承示例。
#include <>
class CMeter
{public:
CMeter(int nPos = 10) { m_nPos = nPos; }
~CMeter() { }
void StepIt(){ m_nPos++; }
int GetPos(){ return m_nPos; }
protected:
void SetPos(int nPos) { m_nPos = nPos; }
private:
int m_nPos;
};
10

第04章 类的继承与派生 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数37
  • 收藏数0 收藏
  • 顶次数0
  • 上传人huiwei2002
  • 文件大小262 KB
  • 时间2018-02-24