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

admin2020-11-11  13

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

选项 A、运行时出错
B、E2-C16-
C、C4-C16-
D、E2-E4-

答案B

解析 类A包括一个整型数据成员r1,一个一般成员函数print(),一个常成员函数print() const。在主函数中定义了对象a1,并对r1的值赋2和常对象a2,并对r1的值赋4,在c++中,常对象不能被更新,所以常对象只能调用类的常成员函数,而不能调用一般成员函数。而一般的对象,既可以调用一般成员函数也可以调用常成员函数。所以在本题中,当执行a1.print()时,输出为E2-,执行a2.print()时,输出为C16-。
转载请注明原文地址:https://jikaoti.com/ti/xUl0FFFM
0

最新回复(0)