定义一个学生类:成员-->姓名、年龄、成绩以及相关函数 定义一个老师类:成员-->年龄、职称以及相关函数 由学生类和老师类共同派生出研究生类:成员-->性别 实例化就研究生类的对象,并输出该对象的所有信息
#include <iostream>
#include <string>
using namespace std;
class person
{
public:
string m_name;
int m_age;
virtual void show() = 0;
};
class student :virtual public person
{
public:
student() {}
student(string c, int a, double b)
{
m_name = c;
m_age = a;
m_score = b;
}
double m_score;
virtual void show()
{
cout << "学生姓名= " << m_name << " 学生年龄= " << m_age << " 学生分数= " << m_score << endl;
}
};
class teacher:virtual public person
{
public:
teacher() {}
teacher(int a, string p)
{
m_age = a;
position = p;
}
virtual void show()
{
cout << "老师年龄= " << m_age << " 老师职称= " << position << endl;
}
private:
string position;
};
class graduate :public student, public teacher
{
public:
graduate(string a, int b, double c, char d)
{
m_name = a;
m_age = b;
m_score = c;
sex = d;
}
void show()
{
cout << "学生姓名= " << m_name << " 学生性别= " << sex << " 学生年龄= " << m_age << " 学生成绩= " << m_score << endl;
}
private:
char sex;
};
void doshow(person* p)
{
p->show();
}
int main()
{
graduate g1("二哈", 25, 99.6, 'M');
doshow(&g1);
return 0;
}