不可能的构造函数

Cio*_*egu 1 c++ constructor

所以我有这个代码:

class A{
public:
    A(){}
    A(int){}
};
int main(){
    A x;//I want this to give me error
    A x(1);//or this to give me error
return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何使类无法被构造?不改变构造函数的可见性;

son*_*yao 5

您可以删除用户定义的构造函数,并删除默认构造函数(C++11 起)。

class A{
public:
    A() = delete;
};
Run Code Online (Sandbox Code Playgroud)