有如下程序:    #nclude<iostream>    using namespace Std;    Class MyClass{    public:         MyClass(int i=0){cout<<1;}         MyCl

admin2017-10-17  19

问题 有如下程序:    #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)。
转载请注明原文地址:https://kaotiyun.com/show/tXAp777K
0

最新回复(0)