单选题
有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x){cout<<2;} MyClass&operator=(const MyClass&x){cout<<3;return*this;} ~MyClass0{cout<<4;} }; int main(){ MyClass obj1(1),obj2(2),obj3(obj1); return 0: } 运行时的输出结果是( )。
【正确答案】
A
【答案解析】解析:当创建MyClass类对象obj1(1)和obj2(2)时候,调用类构造函数会输出两个1,然后创建类对象obj3(obj(1))时,会调用拷贝类构造函数,输出一个2,然后当main函数结束时候,调用三个对象的析构函数会输出三个4。