爲什麼驗證碼:繼承構造
class A
{
public:
explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
B *b = new B(5);
delete b;
}
導致這些錯誤:
main.cpp: In function ‘int main()’: main.cpp:13: error: no matching function for call to ‘B::B(int)’ main.cpp:8: note: candidates are: B::B() main.cpp:8: note: B::B(const B&)
應該不是B繼承的構造?
(這是使用gcc)
這是因爲一年多了,一直沒有任何編譯器能夠真正建立在上面的代碼:-) – Mikhail 2013-01-21 04:51:43
@Mikhail相當邪惡:兩個鐺和g ++現在應該支持繼承構造函數: HTTP://鐺.llvm.org/cxx_status.html http://gcc.gnu.org/projects/cxx0x.html 建議使用upvoting這一個作爲正確的答案。 – 2013-05-05 11:46:39
只是問,繼承的構造函數是否能夠訪問/初始化基類的私有成員?或者我是否必須將它們指定爲受保護的? – Markasoftware 2014-06-22 05:13:40