所以聪明的指针不过是包裹原始指针的类只有该对象包含一个调用DELETE
的破坏者如果确切地说,是否有任何理由使用传统的原始指针?使用智能指针总是更方便吗?
智能指针是资源管理的一种形式。还有其他可能更合适的。例如,对于仅内存的对象图(即,没有一个对象都没有任何形式的非记忆资源)使用分配到一个竞技场中,而放开竞技场则更有效:它的开销较小,是IS释放的速度要快得多,尤其是如果对象不一定在缓存中很热。竞技场中维护的对象图使用原始指针链接。
智能指针是用于资源管理的众多工具之一。他们往往被人们不知道其他工具的人过度使用。当然,这是一个常见的模式:对您只用锤子挥舞着每一个看起来像指甲!
智能指针带有某个开销。如果您不需要智能指针提供的功能(通过RAII自动内存管理),则只需坚持使用原始指针即可。请记住,原始的指针本身并不一定是糟糕的,他们拥有资源的原始指针。所有权需要明确的delete
-ION。我们不想要那个。