程序的运行结果include<iostream.h>class C{inti;public:C();C(int val);void Dispal();~C();};C:C(){count<<”Construcor1”<<endl;i=0;}C::C(int val){count<<”Constructor2”<<endl;i=val;}void C::Display(){cout<<:i=”<<i<<end;}C::-C()}cout<<”Destructor”<<endl;}void mian(){ Ca,b(10);a.Display();b.Display();}
2 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
……………… 又是万恶的构造和析构函数
运行结果
Construcor1
Constructor2
i = 0
i = 10
Destructor
Destructor
稍微解释一下
C a,b(10); 构造了两个C类的对象 构造对象需要调用构造函数 由于构造a对象时调用的是没有参数的构造函数 因此会运行C::C()这个构造函数 在构造b对象时因为有参数 所以会调用C::C(int val)这个构造函数
下来各自调用dispaly函数就直接输出相应的i值
最后调用析构函数 输出Destructor
也就上面的运行结果
添加回答
举报
0/150
提交
取消