我对我写的这段 (C++14) 代码感到困惑:
struct B {};
struct C { int m; };
struct D : B { int m; };
int main() {
C c = { 1 }; // this works
D d = { 1 }; // this doesn't work
}
我很好地为D
自己编写了一个构造函数,但是我找不到一个很好的解释来解释为什么该结构D
不再可以使用初始化列表进行初始化。我所做的只是让它继承自一个完全空的类——我想我以某种方式让它表现得不像结构。
我的编译器究竟是如何处理结构C
的D
?