公有繼承中派生類Student對基類Person成員的訪問
阿新 • • 發佈:2019-01-28
題目內容:
已知基類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
#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; }