一、实验目的
l 1、理解继承的含义,掌握派生类的定义方法和实现。
l 2、理解公有继承下基类成员在派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员。
l 3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员。
l 4、理解虚基类在类的继承层次中的作用。
二、准备内容
1、实验课前需预习实验内容,并做好实验设计。
2、复习视频及课上所讲授的C++中类的继承与派生的C++基本知识。
三、实验内容
设计并完成项目七:慕课网站上第七周的编程作业。
四、实验步骤
(一)编程代码
1.
#include<iostream> //头文件
#include <cstring>
using namespace std; //使用名字空间
class Person //定义person类
{
private: //私有函数
char Name[20]; //定义变量
char Sex;
int Age;
public: //公有函数
void Register(char *name, int age, char sex) //定义无返回值函数
{
strcpy(Name, name); //将name赋值给Name
Age = age;
Sex = sex;
}
void ShowMe() //定义无返回值函数
{
cout<<Name<<" "<<Age<<" "<<Sex<<endl; //输出
}
};
class Student:public Person //定义一个派生类
{
private: //私有函数
int Number;
char ClassName[10];
public: //公有函数
void RegisterStu(char *classname, int number, char *name, int age, char sex)//定义无返回值函数
{
strcpy(ClassName, classname); //将classname赋值给ClassName
Number = number;
Register(name, age, sex);
}
void ShowStu() //定义无返回值函数
{
cout<<Number<<" "<<ClassName<<" "; //输出
ShowMe();
}
};
int main() //主函数
{
Student s1; //定义一个对象
char classname[10],name[20],sex; //定义变量
int number,age;
cin>>classname>>number>>name>>age>>sex; //输出
s1.RegisterStu(classname, number, name, age, sex);//对象调用RegisterStu函数
s1.ShowStu();//对象调用ShowStu函数
s1.Person::Register(name, age, sex); //对象调用Person::Register函数
s1.Person::ShowMe(); //对象调用Person::ShowMe函数
return 0;
}
2.:
#include<iostream> //头文件
#include <cstring>
using namespace std; //使用名字空间
class Person //定义类
{