文档详情

[实验十一继承与派生1.doc

发布:2017-01-05约3.48千字共5页下载文档
文本预览下载声明
实验十一 继承与派生(一) 实验目的 掌握利用单继承和多重继承的方式定义派生类的方法;深刻理解在各种继承方式下构造函数和析构函数的执行顺序;理解和掌握公有继承、私有继承和保护继承对基类成员的访问机制;理解虚基类的概念以及引入虚基类的目的和作用。 实验内容 (1) 将书上例5.1的程序片段补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。 #include stdafx.h #include iostream #include string using namespace std; class Student {public: void get_value() {cinnumnamesex;} void display( ) {coutnum: numendl; coutname: nameendl; coutsex: sexendl;} private : int num; string name; char sex; }; class Student1: public Student {public: void get_value_1() {cinageaddr;} void display_1() { coutage: ageendl; coutaddress: addrendl;} private: int age; string addr; }; int main() {Student1 stud1; stud1.get_value(); stud1.get_value_1(); stud1.display(); stud1.display_1(); return 0; } (2) 将书上例5.2的程序片段补充和改写成一个完整、正确的程序,用私有继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。 #include iostream #include string using namespace std; class Student {public: void display( ) {coutnum: numendl; coutname: nameendl; coutsex: sexendl;} private : int num; string name; char sex; }; class Student1: private Student {public: void display_1() {display(); coutage: ageendl; //引用派生类的私有成员,正确 coutaddress: addrendl;} //引用派生类的私有成员,正确 private: int age; string addr; }; int main() {Student1 stud1; stud1.display_1(); return 0; } (3) 将书上例5.3的程序修改、补充,写成一个完整、正确的程序,用保护继承方式。在程序中应包括输入数据的函数。 #include iostream #include string using namespace std; class Student //声明基类 {public: //基类公用成员 void display( ); protected : //基类保护成员 int num; string name; char sex; }; void Student::display( ) {coutnum: numendl; coutname: nameendl; coutsex: sexendl; } class Student1: protected Student //用protected继承方式声明一个
显示全部
相似文档