有如下程序: #include<iostream> using namespace std; class Wages{ //“工资”类 double base; //基本工资 double

admin2009-08-25  22

问题 有如下程序:
   #include<iostream>
   using namespace std;

   class Wages{        //“工资”类
       double base;   //基本工资
       double bonus;  //奖金
       double tax;    //税金
   public:
       Wages(double CBase,double CBonus,double CTax):
         base(CBase),bonus(CBonus),tax(CTax){}
       double getPay()const;               //返回应付工资额
         Wages operator+(Wages w)const;    //重载加法
   };
   double Wages::getPay()const{return base+bonus-tax;}
   Wages Wages::operator+(Wages W)const{
         return Wages(base+w.base,bonus+w.bonus,tax+w.tax);
   }
   int main(){
         Wages w1(2000,500,100),w2(5000,1000,300);
         cout<<(w1+w2).getPay0<<end1;
         return 0;
   }
   程序的输出结果是

选项

答案8100

解析 此题考查运算符重载。首先从主函数入手,定义了类 Wages的对象w1和w2,然后调用重载运算符+,计算对象w1和w2中CBase、CBonus以及CTax的和,分别是7000、1500、400,然后调用getPay()成员函数,计算base+bonus-tax,7000+1500-400=8100。
转载请注明原文地址:https://kaotiyun.com/show/cEjp777K
0

随机试题
最新回复(0)