问题
单项选择题
有如下程序:
#include<iostream>
using namespace std;
class AA
int n;
public:
AA(int k):n(k)
int get()return n;
int get()constreturn 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。