E3内部其实是将E2函数注册进了atexit函数,当结束的时候则会调用E2
那么现在看看E2
E2函数内部:
?...E2函数内部则会调用析构函数,有人会说,为什么不直接将析构注册为函数回调,这样直接调用atexit不就在释放的时候,从后往前依次调用析构的了吗....E1代理函数内部可以看到传参的.
5.E3代理函数是为了注册析构函数的,为了使atexit函数正常运行而注册的(atexit和ininterm类似,一个从前往后,一个从后往前)
6.E2是E3内部给...总结:
使用时获得对象则产生临时对象
1.局部对象进行构造
2.调用函数的时候产生临时对象,其内部产生构造和析构
3.返回的时候返回值给使用的对象赋值
4.临时对象析构
5.main...为什么会这样:
在早期,硬件资源匮乏,内存想重复利用.
所以会有人显示的调用构造(vc6.0中可以)然后显示的调用析构进行管理,示例:
?