C++继承

C++继承

继承

#include <iostream>
#include <string.h>

using namespace std;

// 定义一个人的类
class Person
{
public:
    // 构造函数
    Person(const char *name, int age);
    // 普通函数
    void GetName(char *name);
    int GetAge();
    void SetName(const char *name);
    void SetAge(int age);

private:
    // 属性
    char m_name[32];
    int m_age;
};
// 定义一个学生的类,继承人的类
class Student : public Person
{
public:
    // 构造函数
    Student(const char *name, int age, float *score);
    // 普通函数
    float GetTotalScore();
    void SetScore(float *score);

private:
    float m_score[3];
};
// 人类的构造函数实现
Person::Person(const char *name, int age)
{
    strcpy(m_name, name);
    m_age = age;
};
void Person::GetName(char *name)
{
    strcpy(name, m_name);
}
int Person::GetAge()
{
    return m_age;
}
void Person::SetName(const char *name)
{
    strcpy(m_name, name);
}
void Person::SetAge(int age)
{
    m_age = age;
}
// 学生的构造函数实现
Student ::Student(const char *name, int age, float *score) : Person(name, age)
{

    SetScore(score);
};
float Student::GetTotalScore()
{
    float sum = 3;
    for (int i = 0; i < 3; i++)
    {
        sum += m_score[i];
    }
        return sum;
};
void Student::SetScore(float *score)
{
    for (int i = 0; i < 3; i++)
    {
        m_score[i] = score[i];
    }
};

int main(int argc, char const *argv[])
{
    // 创建一个人的对象
    Person p("人1", 10);
    char name[32];
    p.GetName(name);
    p.GetAge();
    cout << "" << name << endl;
    cout << "年龄为:" << p.GetAge() << endl;

    p.SetName("人2");
    p.SetAge(20);
    p.GetName(name);
    cout << "" << name << endl;
    cout << "年龄:" << p.GetAge() << endl;
    // 创建一个学生的对象
    float score[3] = {6, 7, 8};
    Student s("学生1", 100, score);
    s.GetName(name);
    cout << "学生1:" << name << endl;
    cout << "年龄:" << s.GetAge() << endl;
    cout << "总分:" << s.GetTotalScore() << endl;
    return 0;
}

继承

#include <iostream>
#include <string.h>

using namespace std;

// 定义一个老师的类
/*************************************************************************************************************/
class Teacher
{
public:
    // 构造函数
    Teacher(const char *name, int age, const char *subject);
    // 普通函数
    void SetName(const char *name);
    void SetAge(int age);
    void SetSubject(const char *subject);

    void GetName(char *name);
    int GetAge();
    void GetSubject(char *subject);

private:
    // 属性
    char m_name[32];
    int m_age;
    char m_subject[32];
};
/*************************************************************************************************************/
// 构造老师类函数
/*************************************************************************************************************/
Teacher::Teacher(const char *name, int age, const char *subject)
{
    strcpy(m_name, name);
    m_age = age;
    strcpy(m_subject, subject);
};
void Teacher::SetName(const char *name)
{
    strcpy(m_name, name);
};
void Teacher::SetAge(int age)
{
    m_age = age;
};
void Teacher::SetSubject(const char *subject)
{
    strcpy(m_subject, subject);
};

void Teacher::GetName(char *name)
{
    strcpy(name, m_name);
};
int Teacher::GetAge()
{
    return m_age;
};
void Teacher::GetSubject(char *subject)
{
    strcpy(subject, m_subject);
};
/*************************************************************************************************************/
// 定义一个人的类,继承老师的类
/*************************************************************************************************************/
#if 1
class Person : public Teacher
{
public:
    // 构造函数
    Person(const char *name, int age, const char *subject, int weight, int height);
    // 普通函数
    void SetWeight(int weight);
    void SetHeight(int height);
    int GetWeight();
    int GetHeight();

private:
    int m_height;
    int m_weight;
};
#endif
/*************************************************************************************************************/
// 构造人类函数
/*************************************************************************************************************/
Person::Person(const char *name, int age, const char *subject, int weight, int height) : Teacher(name, age, subject)
{
    SetWeight(weight);
    SetHeight(height);
}
int Person::GetWeight()
{
    return m_weight;
};
int Person::GetHeight()
{
    return m_height;
};
void Person::SetWeight(int weight)
{
    m_weight = weight;
};
void Person::SetHeight(int height)
{
    m_height = height;
};
/*************************************************************************************************************/
/*************************************************************************************************************/
int main(int argc, char const *argv[])
{
    // 创建一个老师的对象
    Teacher ChineseTeachers("教语文的老师", 30, "语文");
    char name[32];
    char subject[32];
    ChineseTeachers.GetName(name);
    ChineseTeachers.GetSubject(subject);
    cout << "" << name << endl;
    cout << "年龄:" << ChineseTeachers.GetAge() << endl;
    cout << "科目:" << subject << endl;
    // 修改老师类
    cout << "修改......" << endl<<endl;
    ChineseTeachers.SetName("语文->教数学的老师");
    ChineseTeachers.SetAge(40);
    ChineseTeachers.SetSubject("数学");
    ChineseTeachers.GetName(name);
    ChineseTeachers.GetSubject(subject);
    cout << "" << name << endl;
    cout << "年龄:" << ChineseTeachers.GetAge() << endl;
    cout << "科目:" << subject << endl;

    Person person1("人1", 10, "英语", 80, 170);

    cout << "身高(厘米):" << person1.GetHeight() << endl;
    cout << "体重(公斤):" << person1.GetWeight() << endl;

    cout << "修改......" << endl<<endl;

    person1.SetHeight(100);
    person1.SetWeight(190);
    person1.GetHeight();
    person1.GetWeight();
    cout << "身高(厘米):" << person1.GetHeight() << endl;
    cout << "体重(公斤):" << person1.GetWeight() << endl;

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值