以下C ++ 11代码在我的GCC 4.8上成功编译:
struct NonStack
{
private:
NonStack() = default;
public:
static NonStack* Create(){
return new NonStack;
}
};
NonStack a;
int main() { }
但是,以下内容给出了编译错误:
struct NonStack
{
private:
NonStack(){}
};
NonStack a;
int main() { }
为什么第一个成功?私有默认构造函数是否禁止通过NonStack a;
禁止创建对象?