C++之虚基类

#include <iostream>


using namespace std;


class Person
{
public:
Person(string nam,string s,int a):name(nam),sex(s),age(a){}
protected:
string name;
string sex;
int age;
};


class Teacher:virtual public Person
{
public:
Teacher(string nam,string s,int a,string t):Person(nam,s,a),title(t){}
protected:
string title;
};


class Student:virtual public Person
{
public:
Student(string nam,string s,int a,double sco):Person(nam,s,a),score(sco){}


protected:
double score;
};


class Graduate:public Teacher,public Student
{
public:
Graduate(string nam,int a,string t,string s,double sco,double w):Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){}
void display()
{
cout<<"name:"<<Teacher::name<<endl;
cout<<"age:"<<age<<endl;
cout<<"title:"<<title<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"score:"<<score<<endl;
cout<<"wage:"<<wage<<endl;
}
private:
double wage; 
};


int main()
{
Graduate grad("WANG",18,"ASSISTANT","M",98.5,3000.0);
grad.display();

return 0;
}

猜你喜欢

转载自blog.csdn.net/wrc_nb/article/details/80507593
今日推荐