析构理解

来源:互联网 发布:视频剪辑edius软件价格 编辑:程序博客网 时间:2024/05/20 10:11
#include <iostream>
using namespace std;
class MyClass{
int val;
public:
MyClass(int i){ 
val=i;
cout<<"inside constructor \n";
}
int getval(){return val;}
~MyClass() { cout<<"Destructor\n";}
MyClass MkBigger(){
MyClass o(val*2);
return o;
}
};
void display(MyClass  ob)
{ cout<<ob.getval()<<endl;}
main(){
MyClass a(10);  //调用构造函数
cout<<"Before calling display().\n";
display(a);//display中有个对象,发生一次析构
a=a.MkBigger();//发生两次析构
cout<<"after display returns.\n";//对象a析构

}

VC下编译结果:



分析:




原创粉丝点击