单选题
有如下程序: #include<iostream> Using namespace std; class A{ public: A(int i): r1(i){} vgid print() {cout<<'E'<<r1<<'-';} void print() const {cout<<'C'<<r1*r1<<'-';} private: int r1; }; int main(){ A a1(2); const A.a2(4); a1.print(); a2.print(); return 0; } 运行时的输出结果是( )。
【正确答案】
B
【答案解析】解析:类A包括一个整型数据成员r1,一个一般成员函数print(),一个常成员函数print()const。在主函数中定义了对象a1,并对r1的值赋2和常对象a2,并对r1的值赋4,在C++中,常对象不能被更新,所以常对象只能调用类的常成员函数,而不能调用一般成员函数。而一般的对象,既可以调用一般成员函数也可以调用常成员函数。所以在本题中,当执行a1.print()时,输出为E2-,执行a2.print()时,输出为c16-。