itgle.com

如下程序的输出结果是______。 include using namespace std; class Wages{//“工资”如下程序的输出结果是______。include<iostream>using namespace std;class Wages{ //“工资”类double base; //基本工资double bonus; //奖金double tax; //税金public:Wages(double CBase,double CBonus,doable CTax):base(CBase

题目
如下程序的输出结果是______。 include using namespace std; class Wages{//“工资”

如下程序的输出结果是______。

include<iostream>

using namespace std;

class Wages{ //“工资”类

double base; //基本工资

double bonus; //奖金

double tax; //税金

public:

Wages(double CBase,double CBonus,doable CTax):

base(CBase),bonus(CBonus),tax(CTax){ }

double getPay( )const; //返回应付工资额

Wages operator+(Wages w)cons[; //重载加法

};

double Wages::getPay( )cons[{return base+bonus-tax;}

Wages Wages::operator+(Wages w)const{return Wages(base+w.base,bonus+w.bonus,tax+w.tax);}

int main( ){

Wages wl(2000,500,100),w2(5000,1000,300);

eout<<(wl+w2).getPay( )<<endl;

return 0;

}


相似考题
更多“如下程序的输出结果是______。 include<iostream> using namespace std; class Wages{//“工资” ”相关问题
  • 第1题:

    有如下程序: include void fun(int&x,int y){int t=x;x=y;y=t;} int ma

    有如下程序: #include<iostream> void fun(int&x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun(a[1],a[0]; std::cout<<a[0]<<","<<a[1]<<std::ndl; return 0; } 执行后的输出结果是

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:x为引用,双向的;而y为值传递,单向的。

  • 第2题:

    如下程序的输出结果是includevoid fun(int & X,inty){intt=x;x=y;y=t;}int main(){in

    如下程序的输出结果是 #include<iostream> void fun(int & X,inty){intt=x;x=y;y=t;} int main( ){ int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; }

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:参数X是引用传递,传递的是地址:参数Y是值传递,函数fun( )是做X与Y值交换,交换后X的值要被回传给a[1],此时a[1]=a[0]=23。

  • 第3题:

    请将如下程序补充完整,使得输出结果为:bbaa。 include using naluespace std; class

    请将如下程序补充完整,使得输出结果为:bbaa。

    include<iostream>

    using naluespace std;

    class A{

    public:

    ______{eout<<"aa";}

    };

    class B:public A{

    public:

    ~B( ){eont<<"bb";}

    };

    int ulain( ){

    B*P=new B;

    delete P;

    return 0;

    }


    正确答案:~A( )
    ~A( ) 解析:派生类和基类的析构函数调用顺序是先调用派生类的析构函数,然后调用基类的析构函数,打印“bb”说明已经在调用派生类的析构函数,则要继续打印“aa”,显然就只有定义在基类的析构函数中去打印,故答案为~A( )。

  • 第4题:

    有如下程序:include void fun(int& x, int y){int t=x;x=y;y=t;}int main (){int

    有如下程序: #include <iostream> void fun(int& x, int y){int t=x;x=y;y=t;} int main () { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; } 执行后的输出结果是

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:本题考核函数的调用以及参数值的传递。函数fun中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以main函数中调用fun函数后,a[1]的值被修改为a[0]的值,而a[0]的值没有改变。

  • 第5题:

    有如下程序: include using namespace std; class Wages{//“工资”类 double base; //

    有如下程序:

    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
    8100 解析:此题考查运算符重载。首先从主函数入手,定义了类 Wages的对象w1和w2,然后调用重载运算符+,计算对象w1和w2中CBase、CBonus以及CTax的和,分别是7000、1500、400,然后调用getPay()成员函数,计算base+bonus-tax,7000+1500-400=8100。