问题 单项选择题

有如下程序:#include<iostream>using namespace std;class TestClass{private:int x,y;public:TestClass (int i,int j){x=i;y=j;}void print(){cout<<"print1"<<end1;}void print()const{cout<<"print2"<<end1;}};int main(){const TestClass a(1,2);a.print();return 0;}该程序运行后的输出结果是( )。

A.print1

B.print2

C.print1 print2

D.程序编译时出错

答案

参考答案:B

解析: 由主函数main入手,定义TestClass型的常对象a,然后调用对象a中的成员函数print()。因为在C++中,如果一个对象被声明为常对象,则不能调用该对象中的非const型的成员函数。所以,这里调用的是对象中的const型成员函数“void print()const”,输出为print2。

选择题
问答题 简答题