选择题   有如下程序:
    #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。