关闭

12.2time中的运载重载

209人阅读 评论(0) 收藏 举报
  1. /* 
  2.  *Copyright(c) 2016.烟台大学计算机与控制工程学院 
  3.  *ALL rights  reserved. 
  4.  *文件名称:text11.cpp 
  5.  *作者:孙超
  6.  *问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重 
  7.  *继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。<pre class="cpp" name="code">(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。  
  8. (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。  
  9. (3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。  
  10. (4)在类体中声明成员函数,在类外定义成员函数。  
  11. (5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。 
  12.  */  
  13. #include <iostream>  
  14. using namespace std;  
  15. class Teacher  
  16. {  
  17. public:  
  18.     Teacher(string nam,int a,char s,string tit,string ad,string t): name(nam),age(a),sex(s),title(tit),adress(ad),number(t) { }  
  19.     void show();  
  20. protected:  
  21.     string name;  
  22.     int age;  
  23.     char sex;  
  24.     string adress;  
  25.     string number;  
  26.     string title;  
  27.   
  28. };  
  29. void Teacher::show()  
  30. {  
  31.     cout<<"name:"<<name<<endl;  
  32.     cout<<"age:"<<age<<endl;  
  33.     cout<<"sex:"<<sex<<endl;  
  34.     cout<<"address:"<<adress<<endl;  
  35.     cout<<"number:"<<number<<endl;  
  36.     cout<<"title:"<<title<<endl;  
  37.   
  38. }  
  39. class Cadre  
  40. {  
  41. public:  
  42.     Cadre(string nam,int a,char s,string p,string ad,string t):name(nam),age(a),sex(s),post(p),adress(ad),number(t) {}  
  43.     void show();  
  44. protected:  
  45.     string name;  
  46.     int age;  
  47.     char sex;  
  48.     string adress;  
  49.     string number;  
  50.     string post;  
  51.   
  52. };  
  53. void Cadre::show()  
  54. {  
  55.     cout<<"name:"<<name<<endl;  
  56.     cout<<"age:"<<age<<endl;  
  57.     cout<<"sex:"<<sex<<endl;  
  58.     cout<<"post:"<<post<<endl;  
  59.     cout<<"address:"<<adress<<endl;  
  60.     cout<<"number:"<<number<<endl;  
  61. };  
  62. class Teacher_Cadre:public Teacher,public Cadre  
  63. {  
  64.     public:  
  65.     Teacher_Cadre(string nam,int a,char s,string tit,string p,string ad,string t,float w);  
  66.     void show( );  
  67. private:  
  68.     float wage;  
  69. };  
  70. Teacher_Cadre::Teacher_Cadre(string nam,int a,char s,string t,string p,string ad,string tel,float w):  
  71.     Teacher(nam,a,s,t,ad,tel),Cadre(nam,a,s,p,ad,tel),wage(w) {}  
  72.   
  73. void Teacher_Cadre::show( )  
  74. {  
  75.     Teacher::show();  
  76.     cout<<"post:"<<Cadre::post<<endl;  
  77.     cout<<"wages:"<<wage<<endl;  
  78. }  
  79.   
  80. int main( )  
  81. {  
  82.     Teacher_Cadre te_ca("Wang-li",50,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5);  
  83.     te_ca.show( );  
  84.     return 0;  
  85. }  
0
0
查看评论

运载符重载(友元函数)

#include using namespace std; class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r; imag=i;} friend ...
  • huangyong000
  • huangyong000
  • 2015-05-13 08:35
  • 201

运载符重载

1、运载符重载的调用形式 《返回形式》operator《运算符》(参数表) 有两种调用形式: 显示的调用:a.operator+(b) 隐士的调用: a+b 函数例子: #include using namespace std; class A { private: int n...
  • qq_18343569
  • qq_18343569
  • 2015-08-31 22:08
  • 215

【c++程序】重载加法运算符operator+

/*既然使用关键字operator配合运算符++可以实现对象的自加, 那么关键字operator配合+就可实现对象相加*/ #include using namespace std; class num { public: num(){n=1;cout<<"构造函数执行&...
  • u012503639
  • u012503639
  • 2014-12-02 16:34
  • 1463

使用运算符重载实现复数的加法运算

在使用运算符
  • u010105970
  • u010105970
  • 2014-06-10 17:26
  • 1954

插入(<<)和提取(>>)运载符的重载

#include #include #include #include #include using namespace std; const int PoNum=2544; const int QuNum=636; class Point{ public: double...
  • yaozaoyin4396
  • yaozaoyin4396
  • 2017-04-25 10:35
  • 74

把C#中方法重载说透

首先我们说一下什么是方法重载。在面对对象这样的高级语言中都允许我们在一个类中定义多个方法名相同、方法间参数个数和参数顺序不同的方法,对于参数个数不同或者参数列表不同的情况我们称之为参数列表不同。需要注意的是这里没有提到方法的返回值。也就是决定方法是否构成重载有两个条件:(1)在同一个类中;(2)方法...
  • zhoufoxcn
  • zhoufoxcn
  • 2008-09-09 08:01
  • 10129

【C++】String类中的运算符重载

模块化设计: 头文件: #ifndef operator_operator_h #define operator_operator_h #include #include using namespace std; class MyString { public: //...
  • Irean_Lau
  • Irean_Lau
  • 2015-06-07 14:29
  • 6124

c++中重载<<操作符

在类定义中,有时候我们需要直接利用cout来打印出类中的数据,此刻就需要重载 假定定义了一个类Time 然后声明了一个类 Time a; cout 这样的语法肯定是会报错的, 此刻就需要重载operator 要怎么做呢? 首先,在重载函数中,要访问到类Time中的私有成员的数据,所以我们...
  • u011619422
  • u011619422
  • 2015-05-11 10:50
  • 2073

C#重载例子

class Program { static void Main(string[] args) { person p1 = new person(); person p2 = new person("s...
  • HoeCk
  • HoeCk
  • 2014-11-29 22:36
  • 149

Java中方法的重载

方法的重载是针对同一个类中的方法而言,如果方法出现在不同类中,那么就不会有重载一说。对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候就会构成方法的重载。注意事项:1.对于两个方法,如果只有返回值不同,那么不构成重载,程序会报错。class ...
  • shippingxing
  • shippingxing
  • 2015-07-24 16:03
  • 2117
    个人资料
    • 访问:12856次
    • 积分:818
    • 等级:
    • 排名:千里之外
    • 原创:72篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档