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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27928585/article/details/80232939

题目内容:

已知基类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)

//对数据成员赋值,并使用基类的Register
void
ShowStu() //显示数据成员信息,并使用基类的ShowMe
在主程序中建立一个派生类对象,利用已有的成员函数分别显示派生类对象和基类对象的数据成员。

输入格式:

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

输出格式:

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

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

输入样例:

计算机51 85071011 张弓长 18 m

输出样例:

85071011 计算机51 张弓长 18 m
张弓长 18 m

时间限制:500ms内存限制:32000kb

#include<iostream>
#include <cstring>
using namespace std;


class Person
{
private:
    char Name[20];
    char Sex;
    int Age;
public:
    void Register(char *name, int age, char sex)
    {
        strcpy(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);
        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);
    s1.ShowStu();
    s1.Person::Register(name, age, sex);
    s1.Person::ShowMe();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_27928585/article/details/80232939
今日推荐