5-19设计一个虚基类base,派生出leader类,engineer类,在由这两类派生出chairman类,彩用相关数据测试

来源:互联网 发布:lt18i刷ubuntu包 编辑:程序博客网 时间:2024/05/16 20:28
#include<iostream>
#include<string>
using namespace std;
class Base{
public:
Base(string name1, int age1, char sex1)
{
name = name1;
age = age1;
sex = sex1;
}
void show()
{
cout << "姓名:" <<name<<endl;
cout << "年龄:" <<age<<endl;
cout << "性别:" <<sex<<endl;
}
private:
string name;
int age;
char sex;
};
class leader :virtual public Base{
public:
leader(string name1, int age1, char sex1, string time1) :
Base(name1, age1, sex1)
{
time = time1;
}
void show()
{
leader::show();
cout << "工作时间:" << time << endl;
}
private:
string time;
};
class engineer :virtual public Base{
public:
engineer(string name1, int age1, char sex1, string experience1) :
Base(name1, age1, sex1)
{
experience = experience1;
}
void show()
{
engineer::show();
cout << "工作经验:" << experience << endl;
}
private:
string experience;
};
class chairman :public leader, public engineer{
public:
chairman(string name1, int age1, char sex1, string time1, string experience1, string score1):
Base(name1, age1, sex1), leader(name1, age1, sex1, time1), engineer(name1, age1, sex1, experience1)
{
score = score1;
}
void show()
{   Base::show();
leader::show();
engineer::show();
cout << "成绩:" <<score<< endl;
}
private:
string score;
};
int main()
{
chairman ch1("张三","58","男","10years","丰富","万达集团");
cout<<"请输出具体信息:"<<endl;
ch1.chairman::show();
return 0;
}

0 0