欢迎来到天天文库
浏览记录
ID:57049973
大小:170.50 KB
页数:69页
时间:2020-07-28
《继承多态和虚函数课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章继承、多态和虚函数2021/7/27110.1继承继承是OOP程序设计中很重要的一个方面。继承易于扩充现有类以满足新的应用。将已有的类称之为父类,也称基类,将新产生的类称为子类,也称为导出类或派生类。派生类不做任何改变地继承了基类中的所有变量和函数(构造函数和析构函数除外),并且还可以增加新的数据成员和函数,从而使导出类比基类更为特殊化。Example:例10-1.2021/7/272//Contentsofgrade.hclassGrade{charletter;floatscore;voidcalcGrade();public:voidsetScore(floats){s
2、core=s;calcGrade();}floatgetScore(){returnscore;}chargetLetter(){returnletter;}};2021/7/273//Contentsofgrade.cpp#include"grade.h"//DefinitionofmemberfunctionGrade::calcGradevoidGrade::calcGrade(){if(score>89)letter='A';elseif(score>79)letter='B';elseif(score>69)letter='C';elseif(score>59)letter
3、='D';elseletter='F';}2021/7/274//Contentsoftest.h#include"grade.h"classTest:publicGrade{intnumQuestions;floatpointsEach;intnumMissed;public:Test(int,int);};2021/7/275//Contentsoftest.cpp#include"test.h"//参数q代表问题的个数,m代表答错的题数.Test::Test(intq,intm){floatnumericGrade;numQuestions=q;numMissed=m;poin
4、tsEach=100.0f/numQuestions;numericGrade=100.0f-numMissed*pointsEach;setScore(numericGrade);}2021/7/276#include"test.h"voidmain(){intquestions,missed;cout<<"Howmanyquestions?";cin>>questions;cout<<"Howmanyquestionsmissed?";cin>>missed;Testexam(questions,missed);cout.precision(2);cout<<"Thescor
5、eis"<6、.2保护成员和类的访问基类中的保护成员和私有成员比较类似,唯一的区别是:子类不可访问基类中的私有成员,但可访问基类中的保护成员。在公有继承或保护继承的情况下,子类能访问基类的protected成员。Example:例10-22021/7/279//Contentsofgrade2.hclassGrade{protected:charletter;floatscore;voidcalcGrade();public:voidsetScore(floats){score=s;calcGrade();}floatgetScore(){returnscore;}chargetLetter(){7、returnletter;}};2021/7/2710//Contentsoftest2.h#include"grade2.h"classTest:publicGrade{intnumQuestions;floatpointsEach;intnumMissed;public:Test(int,int);voidadjustScore();//新增加的函数};2021/7/2711//Contentsoftest2.cpp#include"test2.h"/
6、.2保护成员和类的访问基类中的保护成员和私有成员比较类似,唯一的区别是:子类不可访问基类中的私有成员,但可访问基类中的保护成员。在公有继承或保护继承的情况下,子类能访问基类的protected成员。Example:例10-22021/7/279//Contentsofgrade2.hclassGrade{protected:charletter;floatscore;voidcalcGrade();public:voidsetScore(floats){score=s;calcGrade();}floatgetScore(){returnscore;}chargetLetter(){
7、returnletter;}};2021/7/2710//Contentsoftest2.h#include"grade2.h"classTest:publicGrade{intnumQuestions;floatpointsEach;intnumMissed;public:Test(int,int);voidadjustScore();//新增加的函数};2021/7/2711//Contentsoftest2.cpp#include"test2.h"/
此文档下载收益归作者所有