定义一个学生类(Student):私有成员属性(姓名、年龄、分数)、成员方法(无参构造、有参构造、析构函数、show函数)
再定义一个党员类(Party):私有成员属性(党组织活动,组织),成员方法(无参构造、有参构造、析构函数、show函数)。
由这两个类共同派生出学生干部类,私有成员属性(职位),成员方法(无参构造、有参构造、析构函数、show函数),使用学生干部类实例化一个对象,然后调用其show函数
输出结果为:
#include <iostream>
using namespace std;
class Student//定义一个学生类
{
private:
string name; //姓名
int age; //年龄
double score; //分数
public:
Student(){cout<<"student 无参构造"<<endl;}
Student(string n,int a,double s):name(n),age(a),score(s){cout<<"student 有参构造"<<endl;}
~Student(){cout<<"student 析构函数"<<endl;}
void show()//学生类成员函数
{
cout<<"Student name "<<name<<endl;
cout<<"Student age "<<age<<endl;
cout<<"Student score "<<score<<endl;
}
};
class Party//定义一个干部类
{
private:
string actvity; //活动
string organization; //组织
public:
Party(){cout<<"Party 无参构造"<<endl;}
Party(string a,string o):actvity(a),organization(o){cout<<"Party 有参构造"<<endl;}
~Party(){cout<<"Party 析构函数"<<endl;}
void show()//干部类成员函数
{
cout<<"Party actvity "<<actvity<<endl;
cout<<"Party organization "<<organization<<endl;
}
};
class Cadre : public Student,public Party//定义一个学生干部类,继承了干部类和学生类的属性
{
private:
string position;//职位
public:
Cadre(){cout<<" Cadre 无参构造"<<endl;}
Cadre(string n,int a,double s,string act,string o,string p):Student(n,a,s), Party(act,o),position(p){cout<<" Cadre 有参构造"<<endl;}
~Cadre(){cout<<"Cadre 析构函数"<<endl;}
void show()//学生干部类的内部成员函数
{
Student::show();
Party::show();
cout<<"Cadre position "<<position<<endl;
}
};
int main()
{
Cadre student("Tom",18,99,"music","students' union","President");
student.show();
return 0;
}