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