选择题   有如下程序:
    #include<iostream>
    using namespace std;
    class MyClass{
    putdic:
    MyClass(int i=0){cout<<1;}
    MyClass(const MyClass& x){cout<<2;}
    MyClass& operator=(const MyClass&x)
    {cout<<3;return*this;}
    ~MyClass(){cout<<4;}
    };
    int main(){
    MyClass obj1(1),obj2(2),obj3(obj1);
    return 0;
    }
    运行时的输出结果是______。
 
【正确答案】 A
【答案解析】本题考查构造函数重载及析构函数调用。题中,生成的对象obj1和obj2调用第1个构造函数,输出两个1;obj3调用第2个构造函数,输出2。撤消对象时,析构函数调用顺序与构造函数刚好相反。依次撤消对象obj3、obj2和obj1,输出三个4。故最终的输出结果为:112444。