公有继承中派生类Student对基类Person成员的访问

xiaoxiao2021-02-28  11

题目内容:

已知基类Person的定义如下:class Person{ char Name[20];char Sex;int Age;public:void Register(char *name, int age, char sex) ;void ShowMe();};请通过继承的方法建立一个派生类Student,其中1.新增的数据成员有:int Number;char ClassName[10];2.新增的成员函数有:void RegisterStu(char *classname, int number, char *name, int age, char sex) //对数据成员赋值,并使用基类的Registervoid ShowStu() //显示数据成员信息,并使用基类的ShowMe在主程序中建立一个派生类对象,利用已有的成员函数分别显示派生类对象和基类对象的数据成员。

输入格式:

学生的班级、学号、姓名、年龄和性别

输出格式:

先输出派生类对象的数据成员,依次为 学号、班级、姓名、年龄和性别

再输出基类的数据成员,依次为姓名、年龄和性别

输入样例:

计算机51 85071011 张弓长 18 m

输出样例:

85071011 计算机51 张弓长 18 m

张弓长 18 m

#include<iostream> #include<string.h> using namespace std; class Person { char Name[20]; char Sex; int Age; public: void Register(char *name, int age, char sex) ; void ShowMe(); }; void Person::Register(char *name,int age,char sex) { strcpy(Name,name); Age=age; Sex=sex; } void Person::ShowMe() { cout<<Name<<" "<<Age<<" "<<Sex<<endl; } class Student:public Person { int Number; char ClassName[10]; public: void RegisterStu(char *classname, int number, char *name, int age, char sex); void ShowStu(); }; void Student::RegisterStu(char *classname, int number, char *name, int age, char sex) { strcpy(ClassName,classname); Number=number; Person::Register(name,age,sex); } void Student::ShowStu() { cout<<Number<<" "<<ClassName<<" "; Person::ShowMe(); } int main() { Student stu; char clname[10]; int num; char nam[20]; char sx; int ag; cin>>clname>>num>>nam>>ag>>sx; stu.Register(nam,ag,sx); stu.RegisterStu(clname,num,nam,ag,sx); stu.ShowStu(); stu.ShowMe(); return 0; }
转载请注明原文地址: https://www.6miu.com/read-2800219.html

最新回复(0)