[实验十一继承与派生1.doc
文本预览下载声明
实验十一 继承与派生(一)
实验目的
掌握利用单继承和多重继承的方式定义派生类的方法;深刻理解在各种继承方式下构造函数和析构函数的执行顺序;理解和掌握公有继承、私有继承和保护继承对基类成员的访问机制;理解虚基类的概念以及引入虚基类的目的和作用。
实验内容
(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继承方式声明一个
显示全部