C++Person类继承

定义Person类,由Person分别派生出Teacher类和Cadre(干部)类。要求如下:
(1)数据成员:
1、在Person类中包含的数据成员有姓名(name)、年龄(age)、性别(sex)。
2、在Teacher类中包含数据成员职称(title)。
3、在Cadre类中包含数据成员职务(post)、工资(wages)。
(2)成员函数:
1、在类体中定义成员函数(根据实际情况包含构造、析构函数)
2、每个类都有显示信息函数(Show)
(3)主函数测试:
主函数中分别定义Person类、 Teacher类、 Cadre(干部)类的对象,预计并使用sizeof验证各对象的大小,调用成员函数。

#include 
#include 
#include 
using namespace std;
//person类定义
class Person
{
    //数据成员
protected:
char name[10];
int age;
char sex[10];
public:
    //构造函数
    Person(char pname[]="",int page=0,char psex[]="")
    {
         strcpy(name,pname);
         age=page;
         strcpy(sex,psex);
    }
    //show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;

    }
};
//定义Teacher类
class Teacher:public Person
{
    //新增数据成员
protected:
char title[10];

public:
    //构造函数
    Teacher(char tname[]="",int tage=0,char tsex[]="",char *ttitle=""):Person(tname,tage,tsex)
    {
        strcpy(title,ttitle);
    }
    //新增show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;
        cout<<"职称:"<<title<<endl;
    }
};
//定义Cadre类
class Cadre:public Person
{
    //新增数据成员
protected:
char post[20];
int wages;
public:
    //构造函数
    Cadre(char cname[]="",int cage=0,char csex[]="",char *cpost="",int cwages=0):Person(cname,cage,csex)
    {
        strcpy(post,cpost);
        wages=cwages;
    }
    //新增show函数
    void show() const
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"年龄:"<<age<<endl;
        cout<<"性别:"<<sex<<endl;
        cout<<"职务:"<<post<<endl;
        cout<<"工资:"<<wages<<endl;
    }
};
int main()
{
    Teacher t("王五",35,"男","副教授");
    Cadre c("张姗",27,"女","计算机教师",5000);
    t.show();
    c.show();
    return 0;
}

你可能感兴趣的:(C++Person类继承)