c++ - 禁用复制/分配,自动禁用 child ?

标签 c++ c++11 copy-constructor assignment-operator

当使用以下代码禁用复制和分配时:

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/

相关文章:

c++ - 释放不需要的 QImages

c++ - 在类中定义私有(private)结构时,如何将其用作函数参数或返回类型?

c++ - 调用构造函数的次数

c++ - 可以重命名 STL vector 吗?

c++ - 如何通用地编写隐藏结构的属性? (C++ 的设计/实现)

C++ Vector Sort 方法编译失败,返回预期的表达式

C++11 自动。从 float 转换为 long

c++ - 选择高效的数据结构来寻找韵律

c++ - 什么是三法则?

c++ - 使用 Win32 API 和 GDI 绘制窗口的无效区域