因此,智能指针只不过是包装原始指针的类,只有对象包含调用delete的析构函数
如果这是准确的,那么有任何理由使用传统的原始指针吗?使用智能指针总是更方便吗?
发布于 2016-12-18 06:00:11
智能指针是资源管理的一种形式。还有其他可能更合适的方法。例如,对于只有内存的对象图(即,没有对象持有任何形式的非内存资源),使用分配到竞技场并释放竞技场更有效:它具有更小的开销,并且释放速度更快,特别是当对象不一定在高速缓存中时。使用原始指针链接在竞技场内维护的对象图。
智能指针是众多资源管理工具之一。它们往往被没有意识到其他工具的人过度使用。当然,这是一种常见的模式:对于只挥舞锤子的你来说,一切都像钉子!
发布于 2016-12-18 05:57:16
智能指针会带来一定的开销。如果您不需要智能指针提供的功能(通过RAII进行自动内存管理),那么只需坚持使用原始指针。记住,原始指针本身不一定是坏的,拥有资源的原始指针是。所有权需要明确的delete-ion。我们不想这样。
https://stackoverflow.com/questions/41203419
复制相似问题