当使用以下代码禁用复制和分配时:
Foo(const Foo&) = delete;
Foo& operator=(const Foo&) = delete;
这也会自动禁用 Foo 子类的复制和分配吗?
class Bar : public Foo {
}
或者,换句话说,Bar
可以被复制吗?
最佳答案
是的,这也会禁止子类的隐式复制。事实上,这就是从 boost::noncopyable
( http://www.boost.org/doc/libs/master/libs/core/doc/html/core/noncopyable.html ) 继承的工作原理。然而,有人总是可以为子类编写自己的复制构造函数/复制赋值,但实际上并不复制 Foo
组件,或者以不同的方式复制它。
关于c++ - 禁用复制/分配,自动禁用 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340278/