有如下程序: #include #include using namespace std; class Power{//幂类 double base;//底数 double expo;//指数 pub

admin2021-09-05  31

问题 有如下程序:
    #include
    #include
    using namespace std;
    class Power{//幂类
    double base;//底数
    double expo;//指数
    public:
    Power(double v,double p):base(v),expo(p){}
    double getBase()const{return base;}
    double getExponent()const{return expo;}
    };
    class Square:public Power{
    public:
    Square(double x):Power(x,2.0){}
    };
    class Cubic:public Power{
    public:
    Cubic(double x):Power(x,3.0){}
    };
    ostream&operator<<(ostream&os,const Power&p){
    os<    return os;
    }
    int main(){
    cout<    return 0;
    }
    运行后的输出结果是9125,则下划线处缺失的部分是(    )。

选项 A、P.base,P.expo
B、P.expo,P.base
C、P.getBase(),P.getExponent()
D、P.getExponent(),P.getBase()

答案C

解析 题意中,Power类是基类,包括两个数据成员:底数base、指数expo;Square类继承Power类,构造函数将参数x赋给base,将2.0赋给expo;Cubic类继承Power类,构造函数将参数x赋给base,将3.0赋给expo。重载“<<”运算符函数中,调用了pow()函数,它接收两个参数:第一参数是底数,第二参数是指数,返回结果为两者的幂运算。根据程序运行结果:9125,以及函数调用传入Square的参数为3,Cubic的参数为5,所以可知:首先输出3的平方,再输出5的3次方,由此推断:使用输出运算符<<调用pow()函数时,第一次接受的参数为:3,2;第二次接受的参数为5,3,由于类对象的成员默认访问权限是private,所以需要使用成员运算符获取base和expo,所以横线处缺失的代码为:p.getBase(),p.getExponent()。本题答案为为C选项。
转载请注明原文地址:https://kaotiyun.com/show/mI5p777K
0

最新回复(0)