第十二周(例题)——例题熟悉(虚基类的简单应用举例)

/*
02.02.*烟台大学计算机学院学生
03.03.*All right reserved.
04.04.*文件名称*烟台大学计算机学院学生
05.05.*All right reserved.
06.06.*文件名称:例题熟悉(虚基类的简单应用举例)
07.07.*作者:王洪海
08.08.*完成日期:2013年5月20日
09.09.*版本号:v1.0
10.10.*对任务及求解方法的描述部分:例题熟悉(虚基类的简单应用举例)
11.11.*我的程序:
12.12.*/

#include <iostream>
#include <string>
using namespace std;
 //声明公用基类Person
class Person
{
 public:
   Person(string nam,char s,int a)
    {name=nam;sex=s;age=a;}
 protected:
   string name;
   char sex;
   int age;
};
 //声明基类Person的直接派生类Teacher
class Teacher:virtual public Person     //声明person为公用继承的虚基类
{
 public:
   Teacher (string nam,char s,int a,string t):Person (nam,s,a)
   {
       title=t;
   }
 protected:
   string title;
};
 //声明Person的直接派生类Student
 class Student:virtual public Person
{
 public:
   Student (string nam,char s,int a,float sco):
    Person(nam,s,a),score(sco){}
 protected:
   float score;
};
 //声明多重继承的派生类Graduate
class Graduate:public Teacher ,public Student
{
 public:
   Graduate(string nam,char s,int a,string t,float sco,float w):
    Person(nam,s,a),Teacher(nam,s,a,t),Student(nam,s,a,sco),wage(w){}
   void display()
   {
       cout<<"name:"<<name<<endl;
       cout<<"age:"<<age<<endl;
       cout<<"sex:"<<sex<<endl;
       cout<<"score:"<<score<<endl;
       cout<<"title:"<<title<<endl;
       cout<<"wage:"<<wage<<endl;
   }
 private:
   float wage;
};
int main()
{
    Graduate grad1("wang_li",'f',24,"assistant",89.5,1200);
    grad1.display();
    return 0;
}


运行结果,如下图:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值