第7章继承与派生 7.2类的继承方式 7.2.2保护继承(续四) 分析本例CPon类的部分成员属性: C Point类的成员函数不能访问的成员有 Int x ∥继承基类的私有成员,类的成员函数不可访问 int ∥继承基类的私有成员,类的成员函数不可访问 C Pointa类的私有成员有: char Color[10] ∥己定义的私有成员 C Point类的保护成员有: int GetXo ∥继承基类的公有成员,成为保护成员 int Getto ∥继承基类的公有成员,成为保护成员 void Move To(int X,inty);∥继承基类的公有成员,成为保护成员 CPoint类的公有成员有: void move to(ntx,inty;∥自己定义的公有成员 yoid setcolor( char *c);,∥自己定义的公有成员 void showo ∥己定义的公有成员
7.2 类的继承方式 7.2.2 保护继承(续四) 分析本例CPoint类的部分成员属性: CPoint类的成员函数不能访问的成员有: int x; //继承基类的私有成员,类的成员函数不可访问 int y; //继承基类的私有成员,类的成员函数不可访问 CPoint类的私有成员有: char Color[10]; //自己定义的私有成员 CPoint类的保护成员有: int Getx(); //继承基类的公有成员,成为保护成员 int Gety(); //继承基类的公有成员,成为保护成员 void MoveTo(int x, int y); //继承基类的公有成员,成为保护成员 CPoint类的公有成员有: void MoveTo(int x, int y); //自己定义的公有成员 void SetColor(char *c); //自己定义的公有成员 void Show(); //自己定义的公有成员 第7章 继承与派生
第7章继承与派生 7.2类的继承方式 72.3私有继承 私有继承的特点: (1)基类的私有成员不能被派生类的函数成员访问 2)基类的公有成员和保护成员在派生类中的访问权限变为私 有类型 将例7.1的继承方式改为私有继承,其他代码保持不变 class cpoint private clocation rivate char color[10 public CPoint(char*c) void Setcolor(char *c) void Showo
7.2 类的继承方式 7.2.3 私有继承 私有继承的特点: (1) 基类的私有成员不能被派生类的函数成员访问 (2) 基类的公有成员和保护成员在派生类中的访问权限变为私 有类型 将例7.1的继承方式改为私有继承,其他代码保持不变 class CPoint : private CLocation { private: char Color[10]; public: CPoint(char *c); void SetColor(char *c); void Show(); }; 第7章 继承与派生
第7章继承与派生 7.2类的继承方式 72.3私有继承(续) 日分析本例 C Point类的部分成员属性 C Point类的成员函数不能访问的成员有: int X; ∥继承基类的私有成员,类的成员函数不可访问 y ∥继承基类的私有成员,类的成员函数不可访问 C Point类的私有成员有: char Color[10] ∥己定义的私有成员 int Getxo: ∥继承基类的公有成员,成为私有成员 int Geto ∥继承基类的公有成员,成为私有成员 void Move To(int X,inty);∥继承基类的公有成员,成为私有成员 C Point类的公有成员有 void Setcolor( char *c);∥自己定义的公有成员 void Showo ∥自己定义的公有成员
7.2 类的继承方式 7.2.3 私有继承(续) 分析本例CPoint类的部分成员属性: CPoint类的成员函数不能访问的成员有: int x; //继承基类的私有成员,类的成员函数不可访问 int y; //继承基类的私有成员,类的成员函数不可访问 CPoint类的私有成员有: char Color[10]; //自己定义的私有成员 int Getx(); //继承基类的公有成员,成为私有成员 int Gety(); //继承基类的公有成员,成为私有成员 void MoveTo(int x, int y); //继承基类的公有成员,成为私有成员 CPoint类的公有成员有: void SetColor(char *c); //自己定义的公有成员 void Show(); //自己定义的公有成员 第7章 继承与派生
第7章继承与派生 7.2类的继承方式 派生类继承基类成员访问权限的变化表: 派生控制 基类成员 private protected public private 不能访问 不能访问 不能访问 protected private protected protected public private protected public
7.2 类的继承方式 派生类继承基类成员访问权限的变化表: 第7章 继承与派生 派生控制 基类成员 private protected public private 不能访问 不能访问 不能访问 protected private protected protected public private protected public
第7章继承与派生 例7.3定义一个钟表类,数据成员有时、分、秒,成员函数 包括设置时间和显示时间。再从钟表类派生出闹钟类,新增数 据成员有响铃时间,成员函数包括响铃、显示响铃时间和设置 响铃时间。 include <iostream.h> class clock public Clock(int h=0, int m=0, int s=O) Clock(Clock &c) oid Set Time(int h, int m, int s) void show Timeo private nt Hour int Minute int Second
例7.3 定义一个钟表类,数据成员有时、分、秒,成员函数 包括设置时间和显示时间。再从钟表类派生出闹钟类,新增数 据成员有响铃时间,成员函数包括响铃、显示响铃时间和设置 响铃时间。 #include <iostream.h> class Clock { public: Clock(int h=0, int m=0, int s=0); Clock(Clock &c); void SetTime(int h, int m, int s); void ShowTime(); private: int Hour; int Minute; int Second; }; 第7章 继承与派生