首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++智能指针

C++智能指针
EN

Stack Overflow用户
提问于 2016-12-18 05:53:58
回答 2查看 163关注 0票数 1

因此,智能指针只不过是包装原始指针的类,只有对象包含调用delete的析构函数

如果这是准确的,那么有任何理由使用传统的原始指针吗?使用智能指针总是更方便吗?

EN

回答 2

Stack Overflow用户

发布于 2016-12-18 06:00:11

智能指针是资源管理的一种形式。还有其他可能更合适的方法。例如,对于只有内存的对象图(即,没有对象持有任何形式的非内存资源),使用分配到竞技场并释放竞技场更有效:它具有更小的开销,并且释放速度更快,特别是当对象不一定在高速缓存中时。使用原始指针链接在竞技场内维护的对象图。

智能指针是众多资源管理工具之一。它们往往被没有意识到其他工具的人过度使用。当然,这是一种常见的模式:对于只挥舞锤子的你来说,一切都像钉子!

票数 2
EN

Stack Overflow用户

发布于 2016-12-18 05:57:16

智能指针会带来一定的开销。如果您不需要智能指针提供的功能(通过RAII进行自动内存管理),那么只需坚持使用原始指针。记住,原始指针本身不一定是坏的,拥有资源的原始指针是。所有权需要明确的delete-ion。我们不想这样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41203419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档