C++习题-类02

本文展示了如何使用C++定义一个人员类(CPerson),并从该类派生出学生类(CStudent)和教师类(CTeacher)。每个类都有相应的构造函数进行初始化,并且派生类包含输出所有数据成员值的功能。CStudent增加了成绩(fScore)字段,而CTeacher增加了教龄(nSchoolAge)字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
定义一个人员类CPerson, 姓名char cName[20]、编号int nNum、性别char cSex。
在此基础上派生出学生类CStudent(增加数据成员:成绩float fScore)
和教师类CTeacher(增加数据成员:教龄int  nSchoolAge)。
要求:
(1)基类和派生类均有带参的构造函数,能够对派生类中所有数据成员初始化;
(2)派生类中定义OutPut()函数,能够对派生类中所有数据成员值进行输出;
*/
#include <iostream>
#include <string.h>

using namespace std;

class CPerson{
    public:
        CPerson(){};
        CPerson(char name[],int n,char sex);
    protected:
        char cName[20];
        int  nNum;
        char cSex;
};
class CStudent:CPerson{
    public:
        CStudent(char *name,int n,char sex,float score);
        void OutPut();
    private:
        float fScore;
};
class CTeacher:CPerson{
    public:
        CTeacher(char *name,int n,char sex,int schoolage);
        void OutPut();
    private:
        int nSchoolAge;
};

int main()
{
    CStudent st1("小明",1001,'M',98);
    CTeacher tc1("李老师",0001,'W',10);
    st1.OutPut();
    cout << endl;
    tc1.OutPut();

    return 0;
}

CPerson::CPerson(char *name,int n,char sex){
    strcpy(cName,name);
    nNum=n;
    cSex=sex;
}

CStudent::CStudent(char *name,int n,char sex,float score):CPerson(name,n,sex){
    fScore=score;
}
void CStudent::OutPut(){
    cout << "姓名:" << cName << endl;
    cout << "编号:" << nNum << endl;
    cout << "性别:" << cSex << endl;
    cout << "成绩:" << fScore << endl;
}

CTeacher::CTeacher(char *name,int n,char sex,int schoolage):CPerson(name,n,sex){
    nSchoolAge=schoolage;
}
void CTeacher::OutPut(){
    cout << "姓名:" << cName << endl;
    cout << "编号:" << nNum << endl;
    cout << "性别:" << cSex << endl;
    cout << "教龄:" << nSchoolAge << endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值