Jest to kod:Brace inicjalizacji dla klasy z wirtualnym funkcji
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;
}
Dlaczego inicjalizacji dla zmiennych a
robót, ale nie dla zmiennej b
?
Inicjalizacja brace działa tylko dla typów POD; sprawienie, że twoja metoda będzie wirtualna sprawia, że nie jest to POD – antlersoft
[Co to są Aggregates and Pods i jak/dlaczego są one specjalne] (http://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods-andhow -Why-are-is-one-special) –