/*
02.2.*Copyright(c) 2016.烟台大学计算机与控制工程学院
03.3.*ALL rights reserved.
04. 4.*文件名称:main.cpp
05. 5.*作者:孙亚茹
06.6.*完成日期:2016年5月24日
07.7.*问题描述:自我定义多重继承方式的新类Teacher_Cadre。
08.8.*/
#include <iostream>
#include<cstring>
using namespace std;
class Teacher
{
protected:
string name;
int age;
char sex;
string address;
int phone;
string title;
public:
Teacher(string name1,int age1,char sex1,string address1,int phone1,string title1):name(name1),age(age1),sex(sex1),address(address1),phone(phone1),title(title1){};
void display();
};
void Teacher::display()
{
cout<<"姓名为:"<<name<<endl;
cout<<"年龄为:"<<age<<endl;
cout<<"性别为:"<<sex<<endl;
cout<<"职称为:"<<title<<endl;
cout<<"地址为:"<<address<<endl;
cout<<"电话为:"<<phone<<endl;
}
class Cadre
{
protected:
string name;
int age;
char sex;
string address;
int phone;
string post;
public:
Cadre(string name2,int age2,char sex2,string address2,int phone2,string post2):name(name2),age(age2),sex(sex2),address(address2),phone(phone2),post(post2){};
};
class Teacher_Cadre:public Teacher,public Cadre
{
private:
double wages;
public:
Teacher_Cadre(string name2,int age2,char sex2,string address2,int phone2,string post2,string title1,double wages1):Teacher(name2,age2,sex2,address2,phone2,title1),Cadre(name2,age2,sex2,address2,phone2,post2),wages(wages1){};
void show();
};
void Teacher_Cadre::show()
{
Teacher::display();
cout<<"职务为:"<<post<<endl;
cout<<"工资为:"<<wages<<endl;
}
int main()
{
Teacher_Cadre sun("孙亚茹",30,'M',"烟台15road",22334,"主管","工程师",10000);
sun.show();
return 0;
}
总结:
在多继承中如果两个基类中有相同名字的数据成员,在派生类的构造函数中写一个即可,但对两个基类初始化时都要写出来。