Cas*_*sey 18 c++ auto-ptr shared-ptr weak-ptr unique-ptr
与使用原始指针的类似(但不限于)某些高级技术相比,每个智能指针的等效用途是什么?
我的理解很少,但我可以收集到:
std::shared_ptr::reset底层时deallocator.std::shared_ptr不增加引用计数的子类型,当其父级std::shared_ptr不再存在时无效.可能会返回无效的引用.使用前请务必检查.RAW指针等效示例
引用计数,缓存实现: std::map<std::string, std::pair<long, BITMAP*> > _cache;
拥有所有权的单身人士:
class Keyboard {
public:
//...
static Keyboard* CreateKeyboard();
~Keyboard();
//...
private:
//...
Keyboard();
static Keyboard* _instance;
//...
};
Run Code Online (Sandbox Code Playgroud)
聚合容器,无所有权:空间分区图和树,迭代容器等.
复合容器,所有权:大型对象.
- 编辑 -
在我工作的时候,我遇到了一个有趣的案例,DeadMG指出智能指针应该被用作简单的抽象来处理资源管理; 那些在声明点无法在堆上创建但必须在以后创建的文件范围对象呢?
什么成语是每个智能指针应该替换?
他们中的每一个人,最终都涉及摧毁指向的资源.换句话说,几乎所有这些.我可以想到没有涉及原始指针的成语,这些指针不涉及破坏指向资源.其他每一种用法都不是一种习惯用语,它只是"使用指针".