有如下程序: #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。