问题 单项选择题

有如下程序: #include <iostream> using namespace std; class MyClass { public:MyClass(int x):val(x) {}void Print() const { cout<<"const:val="<<val<<’\t’;}void Print() { cout<<"val="<<val<<’\t’;} private:int val; }; int main() {const MyClass obj1 (10);MyClass obj2(20);obj1.Print();obj2,Print();return 0; }程序的输出结果是

A.val=10 const:val=20

B.const:val=10 const:val=20

C.const:val=10 val=20

D.val=10 val=20

答案

参考答案:C

解析: 本题考查的知识点是:常成员函数的重载。使用const关键字说明的成员函数称为常成员函数。const关键字可以用于参与对重载函数的区分。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。题目中的Print()就是通过const重载的两个成员函数,主函数中声明的obj1是常对象,而obj2是一般对象。故输出结果为const:val=10 val=20,应该选择C。

选择题
问答题 简答题