c++ - 在从 Boost 派生的类派生的类中自动禁止复制是不可复制的吗?

标签 c++ inheritance boost noncopyable

例如:

class Foo : boost::noncopyable
{
    // ...
};

class Bar : public Foo
{
    // ...
};

Bar 是不可复制的吗?

最佳答案

默认情况下它是不可复制的,除非您创建自定义复制构造函数并避免在那里调用基本复制构造函数。

另见 Explicitly-defaulted and deleted special member functions在 C++11 中引入。尽管将复制构造函数/运算符设为私有(private)可以解决问题,但编译器生成的诊断消息远非漂亮和明显,因此 C++11 中删除的复制构造函数/运算符可以解决此问题。

关于c++ - 在从 Boost 派生的类派生的类中自动禁止复制是不可复制的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863859/

相关文章:

c++ - 重载、覆盖和替换新/删除的限制是什么?

c++ - 应用程序因 _Unwind_Resume 中止错误而崩溃

c++ - 如何使用 CMake 有选择地链接静态或动态 boost 库?

c++ - ld : fatal: library -lm: not found in solaris 10

c++ - 多种类型的数组

c++ - 我怎样才能调用另一个类的方法?

c# - 从基类继承并提供继承类型给覆盖的方法

c# - 如何调用像 base.base.GetHashCode() 这样的二级基类方法

c++ - 使用纯虚方法在C++中初始化抽象类

c++ - boost program_options : using zero-parameter options multiple times?