见标题.
我有:
class Foo {
private:
Foo();
public:
static Foo* create();
}
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能让Foo无法复制?
谢谢!
在C++ 11之前,我可以使用它来使类不可复制:
private:
MyClass(const MyClass&);
MyClass& operator=(const MyClass&);
Run Code Online (Sandbox Code Playgroud)
使用C++ 11,我可以这样做:
MyClass(const MyClass&) = delete;
MyClass& operator=(const MyClass&) = delete;
Run Code Online (Sandbox Code Playgroud)
使用具有已删除副本和赋值的类时,是否有可能生成默认移动运算符?而且这个类并没有被完全复制,而是被移动(这有点类似)?
那么,我是否必须这样做以防止默认移动构造和assignmnent:
MyClass(MyClass&&) = delete;
MyClass& operator=(MyClass&&) = delete;
Run Code Online (Sandbox Code Playgroud)
......?