我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:王鲁峰
* 完成日期:2014 年 5月 13日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 程序输入:略
* 程序输出:略
* 算法设计:略
*/
#include <iostream>
#include <string>
using namespace std;
class Teacher
{
public:
Teacher(string n,int a,string s,string ad,string t,string ti):name(n),age(a),sex(s),addr(ad),tel(t),title(ti) {}
void display();
protected:
string name;int age;string sex;string addr;string tel;string title;
};
class Cadre
{
public:
Cadre(string n,int a,string s,string ad,string t,string p):name(n),age(a),sex(s),addr(ad),tel(t),post(p) {}
protected:
string name;int age;string sex;string addr;string tel;string post;
};
class Graduate:public Teacher,public Cadre
{
public:
Graduate(string n,int a,string s,string ad,string t,string ti,string p,double w):Teacher(n,a,s,ad,t,ti),Cadre(n,a,s,ad,t,p),wages(w){}
void show();
protected:
double wages;
};
void Teacher::display()
{
cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"address:"<<addr<<endl;
cout<<"tel:"<<tel<<endl;
cout<<"title:"<<title<<endl;
}
void Graduate::show()
{
Teacher::display();
cout<<"post:"<<Cadre::post<<endl;
cout<<"wages:"<<wages<<endl;
}
int main()
{
Graduate A("Wang_Wu",20,"f","yanda","18865512345","student","programmer",8000);
A.show();
return 0;
}
运行结果:
心得体会:
多重继承一般用公用继承方式,在派生类中将基类的成员全部继承,并且将自己的成员也带上,输出的时候要用域将不同的平行类区分开来。