问题 单项选择题

有如下程序:
#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。

单项选择题
单项选择题