有如下程序: #include<iostream> #include<cmath> using namespace std; class Power{//幂类 doutfie base;//底数 double expo;//指数 public: Power

admin2020-05-14  15

问题 有如下程序:
#include<iostream>
#include<cmath>
using namespace std;
class Power{//幂类
doutfie 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,cons(Power&p){
os<<pow(______________);
return os;
}
int main(){
cout<<Square(3)<<Cubic(5);
return0;
}
运行后的输出结果是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/bv8p777K
0

最新回复(0)