保留派生类中的默认构造函数

时间:2018-05-12 19:35:44

标签: c++ c++14 c++17

如何在派生类中保留默认构造函数,而不在派生类中添加Derived() = default;

struct Base
{
  Base() = default;
};

struct Derived : Base
{
  using Base::Base;

  explicit Derived(int) {}
};

int main()
{
  // Compilation error here
  Derived d;
}

1 个答案:

答案 0 :(得分:0)

好像是一个错误。它适用于更高版本的gcc。我试过7.1,它有效。也和clang一起工作。你正在使用哪种编译器?

请参阅:

Constructor inheritance for class derived from template class in visual studio 2015 rc