斛兵塘的博客

热爱技术,热爱分享!

C++实例化对象和用动态内存分配实例化对象比较

这个本质上是对象分配区域的问题,前者是在栈(stack)上分配空间,后者是在堆(heap)上分配空间。
栈上分配空间的好处是快,而且对象生存期是自动的,离开当前域之后就自动析构回收。坏处就是栈空间有限,而且不能人为控制对象的生存期,比如你无法将一个函数内部的栈上的对象返回,因为这个函数执行完毕后栈空间会自动回收。
堆上分配空间就相反,new一个空间出来是很慢的,而且对堆上对象的访问也稍慢于栈上。一旦new一个空间出来,需要自己手动去delete回收,系统不会帮你管理回收(用GC的除外),但是分配空间大小灵活,而且正因为是手动回收的,你可以自由控制对象生存期,常用来跨域传递对象。
阅读更多
上一篇Qt 中QDate和QString的转化
下一篇C++堆(head)、栈(stack)、内存分配
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭