欢迎来到天天文库
浏览记录
ID:45066418
大小:589.00 KB
页数:63页
时间:2019-11-09
《C语言程序设计课件第07章继承与派生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章继承与派生C++语言程序设计1本章主要内容类的继承类成员的访问控制单继承与多继承派生类的构造、析构函数类成员的标识与访问2类的继承与派生保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(或父类)。派生出的新类称为派生类。类的继承与派生3继承与派生问题举例类的继承与派生4继承与派生的目的继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。类的继承与派生5派生类的声明class派生类名:继承方式基类名1{成员声明;}类的继承与
2、派生6继承方式不同继承方式的影响主要体现在:派生类成员对基类成员的访问权限通过派生类对象对基类成员的访问权限三种继承方式公有继承私有继承保护继承类成员的访问控制7公有继承(public)基类的public和protected成员的访问属性在派生类中保持不变。(即:派生类中的成员函数可以直接访问基类中的public和protected成员)派生类的成员函数不能直接访问基类的private成员。通过派生类的对象只能访问基类的public成员。类成员的访问控制8例7-1公有继承举例classPoint{public:voidInitP(floatxx=0,floaty
3、y=0){X=xx;Y=yy;}voidMove(floatxOff,floatyOff){X+=xOff;Y+=yOff;}floatGetX(){returnX;}floatGetY(){returnY;}private:floatX,Y;};类成员的访问控制9classRectangle:publicPoint{public:voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H
4、;};类成员的访问控制10#includeusingnamespacestd;voidmain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<5、ected成员)派生类的成员函数不能直接访问基类的private成员。通过派生类的对象不能直接访问基类中的任何成员。类成员的访问控制12例7-2私有继承举例类成员的访问控制classRectangle:privatePoint{public:voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};13#includeusingnamespacestd;voidm6、ain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<7、,yOff);}floatGetX(){returnPoint::GetX();}floatGetY(){returnPoint::GetY();}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};类成员的访问控制15#includeusingnamespacestd;voidmain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<8、
5、ected成员)派生类的成员函数不能直接访问基类的private成员。通过派生类的对象不能直接访问基类中的任何成员。类成员的访问控制12例7-2私有继承举例类成员的访问控制classRectangle:privatePoint{public:voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};13#includeusingnamespacestd;voidm
6、ain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<7、,yOff);}floatGetX(){returnPoint::GetX();}floatGetY(){returnPoint::GetY();}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};类成员的访问控制15#includeusingnamespacestd;voidmain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<8、
7、,yOff);}floatGetX(){returnPoint::GetX();}floatGetY(){returnPoint::GetY();}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};类成员的访问控制15#includeusingnamespacestd;voidmain(){Rectanglerect;rect.InitR(2,3,20,10);rect.Move(3,2);cout<8、
8、
此文档下载收益归作者所有