=默认构造函数可见性

时间:2017-06-15 14:30:31

标签: c++ c++11 default-constructor

我有这样的代码

class A
{
    A() = default;
};

class B
{
    B(); 
};

B::B() = default;

int main()
{
    A a{}; //1
    A a1;  //2
    B b{}; //3
    B b1;  //4
}

第2,3,4行按预期生成编译错误。但第1行有效!请解释

  1. 第1行和第2行之间的区别?在我看来,他们都应该使用默认构造函数并生成相同的错误。
  2. A和B类中构造函数之间的差异。

0 个答案:

没有答案