C++语言程序设计 湖南科技大学 有继承( public 类 成。基类的pubc和 protected成员的访间 员属性在派生类中保持不变,但基类的 的 private成员不可直接访问 访·派生类中的成员函数可以直接访问基类 向的 public和 protected成员,但不能直 控接访问基类的 private成员。 制●通过派生类的对象只能访问基类和派生 类的 public成员
C++语言程序设计 湖南科技大学 11 公有继承(public) ⚫ 基类的public和protected成员的访问 属性在派生类中保持不变,但基类的 private成员不可直接访问。 ⚫ 派生类中的成员函数可以直接访问基类 的public和protected成员,但不能直 接访问基类的private成员。 ⚫ 通过派生类的对象只能访问基类和派生 类的public成员。 类 成 员 的 访 问 控 制
C++语言程序设计 湖南科技大学 例71公有继承举例 类 成 class Point∥基类 Point类的声明 s (public:公有函数成员 void InitP(float XX=0, float yy=0) 的访问 TX=XX;Yyy; void Move(float XOff, float yoff tX+=xOff;Y+=yoff; 1 控空 float Getxo [return X,] float GetYo [return Y;] 制 private:私有数据成员 float XY;
C++语言程序设计 湖南科技大学 12 例7-1 公有继承举例 class Point //基类Point类的声明 {public: //公有函数成员 void InitP(float xx=0, float yy=0) {X=xx;Y=yy;} void Move(float xOff, float yOff) {X+=xOff;Y+=yOff;} float GetX() {return X;} float GetY() {return Y;} private: //私有数据成员 float X,Y; }; 类 成 员 的 访 问 控 制
class Rectangle: public Point∥派生类声明 public:新增公有函数成员 void Initr(float x, float y, float w, float h) {nitP(x,y);W=w;H=h:y调用基类公有成员函数 float GetHO return H; 1 float Getwo ireturn W:] private:新增私有数据成员 float wh
class Rectangle: public Point //派生类声明 { public: //新增公有函数成员 void InitR(float x, float y, float w, float h) {InitP(x,y);W=w;H=h;}//调用基类公有成员函数 float GetH() {return H;} float GetW() {return W;} private: //新增私有数据成员 float W,H; }; 13
Include<iostream> include<cmath> using namespace std; int maino i Rectangle rect; rect InitR (2, 3, 20, 10); 历通过派生类对象访问基类公有成员 rect Move(3, 2) cout<<rect, Get0≤, <<rect. GetYO<< <<rect. GetHO<<, < rect, Get0≤ <endl; return 0
#include<iostream> #include<cmath> using namespace std; int main() { Rectangle rect; rect.InitR(2,3,20,10); //通过派生类对象访问基类公有成员 rect.Move(3,2); cout<<rect.GetX()<<',' <<rect.GetY()<<',' <<rect.GetH()<<',' <<rect.GetW()<<endl; return 0; } 14
C++语言程序设计 湖南科技大学 私有继承( private) 类 成基类的pubi和 protected成员都以 private 员身份出现在派生类中,但基类的 private成 员不可直接访问。 访·派生类中的成员函数可以直接访间基类中 的pubc和 protected成员,但不能直接访 问基类的 private成员。 控。通过派生类的对象不能直接访问基类中的 制任何成员,可以访问派生类的 PUBLIC成员
C++语言程序设计 湖南科技大学 15 私有继承(private) ⚫ 基类的public和protected成员都以private 身份出现在派生类中,但基类的private成 员不可直接访问。 ⚫ 派生类中的成员函数可以直接访问基类中 的public和protected成员,但不能直接访 问基类的private成员。 ⚫ 通过派生类的对象不能直接访问基类中的 任何成员,可以访问派生类的PUBLIC成员。 类 成 员 的 访 问 控 制