類佈雷斯初始化有此代碼:與虛函數
struct A {
int x;
void f() {}
};
struct B {
int y;
virtual void f() {}
};
A a = {2};
//B b = {3}; error: no matching constructor for initialization of 'B'
int main() {
return 0;
}
爲什麼初始化變量a
作品,但不是變量b
?
Brace初始化僅適用於POD類型;使你的方法虛擬化使它非POD – antlersoft
[什麼是聚合和莢以及它們是如何/爲什麼它們是特殊的](http://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods-and-how爲什麼他們特別) –