问题 单项选择题

有以下程序;
#include <iostream>
using namespace std;
class R

public:
R(int r1,int r2)

R1=r1;
R2=r2;

void print();
void print () const;
private:
int R1, R2;
;
void R::print ()

cout<<R1<<","<<R2<<endl;

void R::print() const

cout<<R1<<", "<<R2<<endl;

int main ()

R a(5,4);
const R b(20,52);
b.print();
return 0;

执行后的输出结果是

A.5,4

B.20,52

C.0,0

D.4,5

答案

参考答案:B

解析: 使用const关键字修饰的对象成为常对象,题中对象b被声明为类R的常,对象。使用const关键字说明的成员函数称为常成员函数,类R中用const重载了函数print()。在使用常对象和常成员函数时应注意的是:const是函数类型的一个组成部分,因此在常成员函数部分也要带const关键字;常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数;如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数;const关键字可以参与区分重载函数。本题中,b为类R的常对象,通过b只能调用类R的常成员函数print()输出20,52。

问答题 简答题
单项选择题