有如下程序: #inc1ude<iostream> using namespace std; class Myclass{ public: Myclass(int i:0) {cout1<<;} Myclas

admin2016-11-23  24

问题 有如下程序:
    #inc1ude<iostream>
    using namespace std;
    class Myclass{
    public:
    Myclass(int i:0) {cout1<<;}
    Myclass(const MyQlass&x) {cout<<2;}
    Myclass& operator=(const Myclass&x) {cout<<3; return*this;}
    ~Myclass() {cout<<4;}
    };
    int main(){
    Myclass  obj1(1),obj 2(2),obj 3(obj1);
    return 0:
    }
    运行时的输出结果是(     )。

选项 A、112444
B、11114444
C、121444
D、11314444

答案A

解析 当创建MyClass类对象objl(l)和obj2(2)时候,调用类构造函数会输出两个1,然后创建类对象obj3(obj(l》时,会调用拷贝类构造函数,输出一个2,然后当mam函数结束时候,调用三个对象的析构函数会输出三个4。
转载请注明原文地址:https://kaotiyun.com/show/azAp777K
0

最新回复(0)