有如下程序: #include<iostream> using namespace std; class A{ public: A(int i=0):r1(i){} void print(){cout<<’E’<<r1<<’-’;} void print(

admin2015-11-24  27

问题 有如下程序:
#include<iostream>
using namespace std;
class A{
public:
A(int i=0):r1(i){}
void print(){cout<<’E’<<r1<<’-’;}
void print()const{cout<<’C’<<r1*r1<<’-’;}
void print(int x){cout<<’p’<<r1*r1*r1<<’_’;}
private:
int r1;
};
int main(){
A a1;
const A a2(4);
a1.print(2);
a2.print();
return 0;
}
运行时的输出结果是(    )。

选项 A、P8-E4
B、P8-C16-
C、P0-E4-
D、P0-C16-

答案D

解析 在主函数中创建a1对象时,调用类A的默认构造函数,其数据成员r1的值等于0。当执行a1.print(2)语句时,调用带参数的print成员函数,所以输出结果为p0-,对象a2为常成员,所以其成员变量r1的值等于4,因为常对象只能调用常成员函数,所以当执行语句a2.print()语句时,输出结果为C14-。
转载请注明原文地址:https://kaotiyun.com/show/EYNp777K
0

最新回复(0)