单选题
有如下程序:
#include<iostream>
using namespace std;
class A{
public:
A(int i=0):r1(i) {}
void print(){cout<<"E"<<R1<<"-";}
void print() const{cout<<"C"<<R1*R1<<"-";}
void print(int x) {cout<<"P"<<R1*R1*R1<<"-";}
private:
int r1;
};
int main()
{
A a1;
const A a2(4);
a1.print(2);
a2.print();
return 0;
}
运行时的输出结果是______。
【正确答案】
D
【答案解析】[解析] 创建a1对象时,调用无参构造函数,因为A(int i=0)的参数是默认的.所以创建a1时调用此函数,i=0;创建常对象a2时,调用构造函数i=4;执行a1.print(2)调用含参构造函数,输出P0-,执行a2.print()语句,因为a2是常对象,只能凋用常成员函数输出C16-,答案为D。