第一:是 boost::noncopyable 还是 booster::noncopyable。我在不同的地方都见过。

为什么要让一个类不可复制?你能给出一些示例用例吗?

最佳答案

我发现每当您有一个具有指针作为该类拥有的成员变量的类(即负责销毁)时,它很有用。除非您使用 shared_ptr<> 或其他一些引用计数智能指针,否则您不能安全地复制或分配类,因为在析构函数中您需要对指针进行 delete。但是,您不知道是否已获取该类的拷贝,因此您将因取消引用已释放的指针而导致双重删除或访问冲突。

如果您从 noncopyable 继承,那么它有两个好处:

  • 防止类被复制或分配
  • 通过查看类定义,即自文档代码
  • 使意图清晰

    例如
    class MyClass : boost::noncopyable
    {
       ...
    };
    

    关于c++ - booster::noncopyable 的用例是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3518853/

    10-11 16:02