大括号(没有构造函数)初始化派生类

时间:2013-09-12 00:52:25

标签: inheritance c++11 constructor value-initialization

struct base {
};

//struct derived { // <--- this one works
struct derived : public base { // <--- but this one doesn't
  double x;
};

main () {
  derived d{0.5};
  return 0;
}

使用大括号初始化derived的方法是什么,这意味着没有明确编写构造函数?

1 个答案:

答案 0 :(得分:3)

只有aggregates可以用这种方式初始化(​​没有定义你自己的构造函数),并且作为聚合的要求之一是没有任何基类。简而言之,你不能这样做。