博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stl 存放对象析构问题
阅读量:5828 次
发布时间:2019-06-18

本文共 518 字,大约阅读时间需要 1 分钟。

 

vector内数据使用结构体的话是深拷贝,vector内的数据会拷贝一份保存,vector内数据不会丢失。如果vector内数据是指针的话是进行浅拷贝,数据超出作用域后会自动析构,vector内所指向的数据会被更改和丢失,所以vector如果作为全局变量,不应该使用指针。

 

using namespace std;class test{public:test(){a=5;}~test(){printf("xigou");}int a;};vector
m_XButtonList;void t(){test t1;m_XButtonList.push_back(t1);}int _tmain(int argc, _TCHAR* argv[]){t();return 0;}

  

以上这个程序会析构两次,第一次是t()返回的时候,test t1析构,第二次是主函数返回的时候,m_XButtonList里的对象析构。

 

所以把局部对象放在容器里是没问题的,只要容器存在对象就存在。生命周期一样。

转载于:https://www.cnblogs.com/Browneyes/p/6098393.html

你可能感兴趣的文章
发布了Android的App,我要开源几个组件!
查看>>
How to setup Eclipse with WinAVR and the Eclipse plugin AVR-eclipse
查看>>
C++11带来的优雅语法
查看>>
poj 2356 Find a multiple(鸽巢原理)
查看>>
第25本:《超级快速阅读》
查看>>
Unity中2D和UGUI图集的理解与使用
查看>>
JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)
查看>>
ASP.NET MVC流程解说
查看>>
因为中国队赢了,再撸一下DJANGO的官方文档吧
查看>>
XMPP我写底层协议(零)--废话和准备开幕前
查看>>
Cocos2D-X2.2.3学习笔记12(瞬间动作)
查看>>
js数组操作总结
查看>>
有助于改善性能的技巧
查看>>
LPC43XX JTAG Scan Chain
查看>>
软件測试基本方法(六)之集成測试和系统測试
查看>>
[sh]清理memcached缓存
查看>>
走进AngularJs(二) ng模板中常用指令的使用方式
查看>>
树莓派安装FTP服务器
查看>>
工程师如何在工作中提升自己?(公众号)
查看>>
gcc下inline的一个问题
查看>>