当前位置:首页 > 《程序设计基础(C++)》实验教程及完整答案
graduate(char *na, int y, int g, char *spec):person(na,y) { grade=g; strcpy(specialty,spec); }
void display(int this_year) { cout<<\ graduate age grade specialty\\n\ cout< } }; class teacher :public person { protected: char title[15]; char specialty[20]; public: teacher(char *na, int y, char *ti, char *spec):person(na,y) { strcpy(title,ti); strcpy(specialty,spec); } void display(int this_year) { cout<<\ teacher age title specialty\\n\ cout< class in_service_graduate:public teacher, public graduate { public: in_service_graduate(char *na, int y, char *ti, char *spec1, int g, char *spec2): teacher(na, y, ti, spec1), graduate(na, y, g, spec2) { } void display(int this_year) { cout<<\in_service_graduate age title work_specialty study_specialty\\n\ } }; void main() { grade graduate gr(\ teacher te(\ in_service_graduate sg(\gr.display(2002); cout< te.display(2002); cout< [基本要求] ? 阅读程序,完成in_service_graduate类中的display()函数的程序。 ? 上机录入、调试上面程序。 ? 运行程序,观察运行结果是否正确且满足题意要求。 解:不满足,应将函数继承改成虚基类 3.分析与思考 实验内容(1)中: 定义并实现vehicle类、car类和truck类的构造函数,完成vehicle类、car类和truck类的数据成员初始化工作。 将vehicle中数据成员wheels和weight改为private性质,如何修改程序以达到相同的输出结果。 实验内容(2)中: 程序中类person中的数据成员name和birth_year在in_service_graduate类中有两个副本,请使用虚基类使它们在in_service_graduate类中只有一个副本。注意同时修改程序的其他相关部分。 解:改为class graduate :virtual public person class teacher :virtual public person public: in_service_graduate(char *na, int y, char *ti, char *spec1, int g,char *spec2): person(na,y),teacher(na, y, ti, spec1), graduate(na, y, g, spec2) { } 实验九 多态性与虚函数 1.实验目的要求 (1) 掌握虚函数定义及实现。 (2) 掌握具有多态性的面向对象程序设计的基本方法。 (3) 掌握纯虚函数与抽象类的定义、实现及应用。
共分享92篇相关文档