问题 单项选择题

有如下程序: #include<iostream> using namespace std; class AA{int n; public:AA(int k):n(k){}int get(){return n;)int get()const{return n+1;} }; int main() {AA a(5);const AA b(6);cout<<a.get()<<b.get();return 0; } 执行后的输出结果是

A.55

B.57

C.75

D.77

答案

参考答案:B

解析: 本题考核常成员函数和函数的重载。所谓函数重载,是指同一个函数名可以对应着多个函数的实现,类AA中定义了两个 get()函数,一个为普通成员函数,另一个为常成员函数。一般对象a既可以调用普通成员函数get,也可以调用常成员函数get,但是由于常成员函数不能更新对象的数据成员,所以题中通过对象a调用的函数为普通成员函数get(),返回值为5。常对象b只能调用常成员函数,所以题中通过对象b调用的函数为常成员函数get(),返回值为7。

选择题
单项选择题