问题 单项选择题

有如下程序: #nclude<iostream> using namespace Std; Class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(constMyClass&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.112444

B.11114444

C.121444

D.11314444

答案

参考答案:A

解析: 此题考查的是函数重载。从主函数入手,定义了MyClass类的对象obj1(1),obj2(2)和obj3(obj1)。其中对象obj1和obj2中的参数为整型,因此调用构造函数MyClass(int i=O){cout<<1小输出11;对象obj3中的参数为对象obj1,所以调用构造函数MyClass(const MyClass&x){cout<<2;},输出2。在主函数退出时,调用析构函数~MyClassO{cout<<4;},清除对象。obj1,obj2和obj3,因此输出444,即答案为选项A)。

阅读理解
多项选择题