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;
}