欢迎来到天天文库
浏览记录
ID:59451804
大小:1.28 MB
页数:127页
时间:2020-09-18
《继承(C程序设计基础(第4版)周霭如林伟健)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章继承8.1类之间的关系8.2基类和派生类8.3基类的初始化8.4继承的应用实例8.5多继承小结8.1类之间的关系has-A,uses-A和is-Ahas-A包含关系,用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类。uses-A一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义友元或对象参数传递实现。is-A机制称为“继承”。关系具有传递性,不具有对称性。8.1类之间的关系不具有对称性不是所有植物都属于蕨类传递性高等植物、蕨类植物、芒萁都是植物,具有植物的共同特
2、征植物低等植物高等植物藻类菌类地衣类苔藓类蕨类裸子类被子类地钱小金发草毛蕨芒萁杉木柏木荔枝橘子8.1类之间的关系继承是类之间定义的一种重要关系一个B类继承A类,或称从类A派生类B类A称为基类(父类),类B称为派生类(子类)AB1B2C1C2C3B1,B2的基类A的派生类C1,C2,C3的基类A的派生类(单继承)C3的基类B1,B2的派生类(多继承)B1的派生类类继承关系的语法形式class派生类名:基类名表{数据成员和成员函数声明};8.2基类和派生类类继承关系的语法形式class派生类名:基类名表{数据成员和成员函数声明};8.2基类
3、和派生类基类名表构成访问控制基类名1,访问控制基类名2,…,访问控制基类名n类继承关系的语法形式class派生类名:基类名表{数据成员和成员函数声明};8.2基类和派生类基类名表构成访问控制基类名1,访问控制基类名2,…,访问控制基类名n访问控制表示派生类对基类的继承方式,使用关键字:public公有继承private私有继承protected保护继承派生类对基类成员的使用,与继承访问控制和基类中成员性质有关公有继承基类的公有成员派生类的公有成员基类的保护成员派生类的保护成员私有继承基类的公有成员和保护成员派生类的私有成员保护继承
4、基类的公有成员和保护成员派生类的保护成员不论种方式继承基类,派生类都不能直接使用基类的私有成员8.2.1访问控制8.2.1访问控制8.2.1访问控制1.公有继承public成员public成员protected成员protected成员private成员public成员protected成员private成员基类派生类#includeusingnamespacestd;classA{public:voidget_XY(){cout<<"Entertwonumbersofx,y:";cin>>x>>y;}voidpu
5、t_XY(){cout<<"x="<>h;}intget_V(){returnv;}voidmake_V(){make_S();v=get_S()*h
6、;}//使用基类成员函数protected:inth,v;};例8-1公有继承的测试#includeusingnamespacestd;classA{public:voidget_XY(){cout<<"Entertwonumbersofx,y:";cin>>x>>y;}voidput_XY(){cout<<"x="<7、};//使用基类数据成员x,yprotected:ints;};classC:publicB{public:voidget_H(){cout<<"Enteranumberofh:";cin>>h;}intget_V(){returnv;}voidmake_V(){make_S();v=get_S()*h;}//使用基类成员函数protected:inth,v;};classAclassC:publicBclassB:publicA8.2.1访问控制例8-1公有继承的测试#includeusingnamespacest8、d;classA{public:voidget_XY(){cout<<"Entertwonumbersofx,y:";cin>>x>>y;}voidput_XY(){cout<<"x="<
7、};//使用基类数据成员x,yprotected:ints;};classC:publicB{public:voidget_H(){cout<<"Enteranumberofh:";cin>>h;}intget_V(){returnv;}voidmake_V(){make_S();v=get_S()*h;}//使用基类成员函数protected:inth,v;};classAclassC:publicBclassB:publicA8.2.1访问控制例8-1公有继承的测试#includeusingnamespacest
8、d;classA{public:voidget_XY(){cout<<"Entertwonumbersofx,y:";cin>>x>>y;}voidput_XY(){cout<<"x="<
此文档下载收益归作者所有