是否从由Boost noncopyable派生的类派生的类中自动禁止复制?

Emi*_*ier 7 c++ inheritance boost noncopyable

例如:

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

class Bar : public Foo
{
    // ...
};
Run Code Online (Sandbox Code Playgroud)

Bar不可复制的?

小智 8

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

另请参见C++ 11中引入的显式默认和删除的特殊成员函数.尽管使复制构造函数/运算符私有解决了问题,但编译器生成的诊断消息远非美观且非常明显,因此在C++ 11中存在已删除的复制构造函数/运算符来解决此问题.