小编tho*_*mas的帖子

C++ 11私有默认构造函数

以下C++ 11代码在我的GCC 4.8上成功编译:

struct NonStack
{
private:
  NonStack() = default;
public:
  static NonStack* Create(){
    return new NonStack;
  }
};
NonStack a;

int main() { }
Run Code Online (Sandbox Code Playgroud)

但是,以下给出了编译错误:

struct NonStack
{
private:
  NonStack(){}
};

NonStack a; 

int main() { }
Run Code Online (Sandbox Code Playgroud)

为什么第一个成功?私有默认构造函数不应该通过禁止创建对象NonStack a;吗?

c++ gcc default-constructor c++11 gcc4.8

20
推荐指数
1
解决办法
2044
查看次数

标签 统计

c++ ×1

c++11 ×1

default-constructor ×1

gcc ×1

gcc4.8 ×1