何时/为什么我要显式删除我的构造函数?假设原因是为了防止其使用,为什么不做到呢private
?
class Foo
{
public:
Foo() = delete;
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果我在类中禁止移动构造函数,我就不能再在向量中使用它:
class Foo
{
public:
Foo(int i) : i_(i) {}
Foo(Foo&&) = delete;
int i_;
};
int main()
{
std::vector<Foo> foo;
foo.push_back(Foo(1));
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?