定义一个学生类(Student):私有成员属性(姓名、年龄、分数)、成员方法(无参构造、有参构造、析构函数、show函数)
再定义一个党员类(Party):私有成员属性(党组织活动,组织),成员方法(无参构造、有参构造、析构函数、show函数)。
由这两个类共同派生出学生干部类,私有成员属性(职位),成员方法(无参构造、有参构造、析构函数、show函数),使用学生干部类实例化一个对象,然后调用其show函数进行测试
代码:
#include <iostream>
using namespace std;
class Student
{
private:
string name;
int age;
int grade;
public:
//无参
Student() {}
//有参
Student(string n, int a, int g):name(n), age(a), grade(g){}
//析构
~Student(){cout << "析构" << endl;}
void show(){
cout << "姓名:" << name << " ";
cout << "年龄:" << age << " ";
cout << "分数:" << grade << " ";
}
Student &operator=(const Student &R){
if(this != &R){
this->name = R.name;
this->age = R.age;
this->grade = R.grade;
}
return *this;
}
};
class Party
{
private:
string activity;
string orgz;
public:
Party() {}
Party(string a, string o):activity(a), orgz(o){}
//析构
~Party(){cout << "析构" << endl;}
void show(){
cout << "党组织活动:" << activity << " ";
cout << "组织:" << orgz << " ";
}
Party & operator=(const Party &R){
if(this != &R){
this->activity = R.activity;
this->orgz = R.orgz;
}
return *this;
}
};
class StuLeader : public Student, public Party
{
private:
string position;
public:
StuLeader() {}
StuLeader(string n, int a, int g, string a2, string o, string p):Student(n, a, g), Party(a2, o), position(p){}
//析构
~StuLeader(){cout << "析构" << endl;}
void show(){
Student::show();
Party::show();
cout << "职位:" << position << endl;
}
StuLeader & operator=(const StuLeader &R){
if(this != &R){
this->Student::operator=(R);
this->Party::operator=(R);
this->position = R.position;
}
return *this;
}
};
int main()
{
StuLeader stu("xzg", 22, 96, "志愿者活动", "共青团", "团员");
stu.show();
StuLeader stu2("xzg", 23, 88, "志愿者活动", "共青团", "团员");
stu = stu2;
stu.show();
return 0;
}
结果: