A-A+

有以下程序: #include <iostream> using namespace std

2022-08-05 20:51:42 问答库 阅读 172 次

问题详情

有以下程序: #include <iostream> using namespace std; class R { public: R(int f1,int r2) { R1=r1; R2=r2; } void print(); void print ()const; private: int R1, R2; }; void R: :print() { cout<<R1<<", "<<R2<<end1; } void R: :print() const { cout<<Rl<<", "<<R2<<end1; } 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。

考点:程序