2012-12-25 186 views
1

假設我有一個結構:統一初始化不會在構造函數初始化父對象工作

struct A 
{ 
    int i; 
}; 

我可以初始化它:

A a{1}; 

現在我有一個派生類:

struct B : public A 
{ 
    B(int _i) : A{_i} {}; 
}; 

但是我在B結構中有編譯錯誤:

error: no matching function for call to ‘A(<brace-enclosed initializer list>)’ 

編譯器是gcc-4.6(的SUSE Linux)4.6.3

回答

3

沒有什麼不對您的代碼;只是你的編譯器不支持所有必需的C++ 11功能。

你的構造函數用gcc 4.7.0編譯得很好。

+0

好的,現在好像是時候了:) – galadog