问题 单项选择题

有如下程序:
#include <iostream>
using namespace std;
class sample

private:
int x, y;
public:
sample(int i,int j)

x=i;
y=j;

void disp()

cout<<"displ"<<end1;

void disp() const

cout<<"disp2"<<end1;

;
int main ()

const sample a(i,2);
a.disp ();
return 0;

该程序运行后的输出结果是( )。

A.disp1

B.disp2

C.disp1 disp2

D.程序编译时出错

答案

参考答案:B

解析: C++中,在定义常对象时必须进行初始化,而且不能被更新。如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数。题中,对象a被定义成类sample的常对象,所以通过对象a只能调用其常成员函数disp()。所以程序最后输出disp2。

单项选择题
填空题