#include <iostream>
using namespace std;
class Stu
{
public:
Stu(){cout << "Stu无参构造" << endl;}
Stu(string name, int age, double score): name(name), age(age), score(score){cout << "Stu有参构造" << endl;}
void show()
{
cout << "Stu::name = " << name << endl;
cout << "Stu::age = " << age << endl;
cout << "Stu::score = " << score << endl;
}
~Stu(){cout << "Stu析构函数" << endl;}
private:
string name;
int age;
double score;
};
class Party
{
public:
Party(){cout << "Party无参构造" << endl;}
Party(string activity, string organization): activity(activity), organization(organization){cout << "Party有参构造" << endl;}
void show()
{
cout << "Party::activity = " << activity << endl;
cout << "Party::organization = " << organization << endl;
}
~Party(){cout << "Party析构函数" << endl;}
private:
string activity;
string organization;
};
class cadre :public Stu, public Party
{
public:
cadre() {cout << "cadre无参构造" << endl;}
cadre(string name, int age, double score,string activity, string organization, string position): Stu(name, age, score), Party(activity, organization), position(position) {cout << "cadre有参构造" << endl;}
void show()
{
cout << "cadre::position = " << position << endl;
}
~cadre() {cout << "cadre析构构造" << endl;}
private:
string position;
};
int main()
{
//cadre c("干事"); Stu无参构造 Party无参构造 cadre有参构造
/*
//在cadre的有参构造中添加了Stu的有参构造
cadre c("lisi", 18, 90, "干事"); //Stu有参构造 Party无参构造 cadre有参构造
c.Stu::show();
c.show();
*/
cadre c("lisi", 18, 90, "activity", "organization", "ganshi");
c.Stu::show();
c.Party::show();
c.show();
// Stu有参构造
// Party有参构造
// cadre有参构造
// Stu::name = lisi
// Stu::age = 18
// Stu::score = 90
// Party::activity = activity
// Party::organization = organization
// cadre::position = ganshi
// cadre析构构造
// Party析构函数
// Stu析构函数
return 0;
}