C++语言程序设计 湖南科技大学 例7-2私有继永举例 类 class Rectangle: private Point派生类声明 成{ public:∥新增外部接口 void InitR(float X, float y, float w, float h) nitP(xy)W=w;H=h}∥访问基类公有成员 的访问 void Move(float xOff, float yoff) [Point: Move(XOff,yOf; float GetXo freturn Point:: GetX0:] float GetYo [return Point: GetY0:] 控空 float GetHo return H,] 制 float Getwo ireturn W:] private:新增私有数据 float W.H:
C++语言程序设计 湖南科技大学 16 例7-2 私有继承举例 class Rectangle: private Point //派生类声明 {public: //新增外部接口 void InitR(float x, float y, float w, float h) {InitP(x,y);W=w;H=h;} //访问基类公有成员 void Move(float xOff, float yOff) {Point::Move(xOff,yOff);} float GetX() {return Point::GetX();} float GetY() {return Point::GetY();} float GetH() {return H;} float GetW() {return W;} private: //新增私有数据 float W,H; }; 类 成 员 的 访 问 控 制
iincludesiostream> Include<cmath> using namespace std; int main( /通过派生类对象只能访问本类成员 Rectangle rect; rect InitR (2, 3, 20, 10); rect Move(3, 2); cout<<rect, Ge0<≤,≤ rect, gety0≤≤; < rect GetH0≤<,<< rect. Get0≤≤endl; return o
#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; } 17
C++语言程序设计 湖南科技大学 保护继承( protected) 类 成·基类的 public和 protected成员都以 员 protected身份出现在派生类中,但 的基类的 private成员不可直接访间 访。派生类中的成员函数可以直接访问基 类中的pubc和 protected成员,但 不能直接访问基类的 private成员。 控通过派生类的对象不能直接访问基类 制 中的任何成员
C++语言程序设计 湖南科技大学 18 保护继承(protected) ⚫ 基类的public和protected成员都以 protected身份出现在派生类中,但 基类的private成员不可直接访问。 ⚫ 派生类中的成员函数可以直接访问基 类中的public和protected成员,但 不能直接访问基类的private成员。 ⚫ 通过派生类的对象不能直接访问基类 中的任何成员 类 成 员 的 访 问 控 制
C++语言程序设计 明南科技大学 protected成员的特点与作用 类 成·对建立其所在类对象的模块来说,它 员与 private成员的性质相同 的。对于其派生类来说,它与pubc成 访员的性质相同。 同。既实现了数据隐藏,又方便继承,实 控现代码重用。 制
C++语言程序设计 湖南科技大学 19 protected 成员的特点与作用 ⚫ 对建立其所在类对象的模块来说,它 与 private 成员的性质相同。 ⚫ 对于其派生类来说,它与 public 成 员的性质相同。 ⚫ 既实现了数据隐藏,又方便继承,实 现代码重用。 类 成 员 的 访 问 控 制
C++语言程序设计 明南科技大学 例73 protected成员举例 类 成 class a t protected: 的 int x: 访 局 int main0 控 制 Aa ax=5;∥错误
C++语言程序设计 湖南科技大学 20 例7-3 protected 成员举例 class A { protected: int x; } int main() { A a; a.x=5; //错误 } 类 成 员 的 访 问 控 制