多重继承方式需要记住,必须分别进行初始化即构造函数,不然会出现错误。
#include<iostream>
using namespace std;
class teacher
{
public:
void display();
teacher(string ,int ,char ,string ,string ,string );
private:
string name;
int num;
char sex;
string addr;
string phone;
string title;
};
teacher::teacher(string nam,int n,char s,string ad,string p,string t)
{
name=nam;
num=n;
sex=s;
addr=ad;
phone=p;
title=t;
}
void teacher::display()
{
cout<<name<<' '<<num<<' '<<sex<<' '<<addr<<' '<<phone<<' '<<title<<endl;
}
class cadre
{
public:
cadre(string ,int ,char ,string ,string ,string );
void display();
private:
string name;
int num;
char sex;
string addr;
string phone;
string post;
};
void cadre::display()
{
cout<<name<<' '<<num<<' '<<sex<<' '<<addr<<' '<<phone<<' '<<post<<endl;
}
cadre::cadre(string nam,int n,char s,string ad,string p,string po)
{
name=nam;
num=n;
sex=s;
addr=ad;
phone=p;
post=po;
}
class teacher_cadre:public teacher,public cadre
{
public:
teacher_cadre(string nam,int n,char s,string ad,string p,string t,string po,float w);
void show();
private:
float wages;
};
teacher_cadre::teacher_cadre(string nam,int n,char s,string ad,string p,string po,string t,float w):teacher(nam,n,s,ad,p,t),cadre(nam,n,s,ad,p,po)
{
wages=w;
}
void teacher_cadre::show()
{
teacher::display();
cout<<wages<<endl;
}
int main()
{
teacher_cadre tc("Wang-Li",50,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5);
tc.show();
return 0;
}