我有一個簡單的程序來測試初始化列表,如下圖所示:C++初始化派生類的列表無法編譯,爲什麼?
#include<stdio.h>
struct Base{
Base():m_i(2){}
int m_i;
};
struct Derived:Base{
Derived():m_i(3){}
};
int main()
{
Derived d;
return 0;
}
令我驚訝的是,它無法編譯。海灣合作委員會和叮噹都給出了錯誤:
1.cpp:7:15: error: member initializer 'm_i' does not name a non-static data member or base class
Derived():m_i(3){}
^~~~~~
我在哪裏弄錯了,如何解決它?
什麼你期望'm_i'的價值是? 3或2? – bejado