0
也許這是一個微不足道的問題:我有一個基類B,它有一個帶有許多(6+)參數的構造函數(並且它不穩定,可能在未來會發生變化)。還有很多從它繼承的派生類,它們也具有相同的構造函數簽名,並且它們只是做基本的一個。在C++中聲明基類和派生類的'虛擬'構造函數?
所以問題是:有沒有辦法只聲明一次在基地,而不需要在派生類中聲明?就像一個普通的虛擬功能一樣。
我正在使用C++ 11。
也許這是一個微不足道的問題:我有一個基類B,它有一個帶有許多(6+)參數的構造函數(並且它不穩定,可能在未來會發生變化)。還有很多從它繼承的派生類,它們也具有相同的構造函數簽名,並且它們只是做基本的一個。在C++中聲明基類和派生類的'虛擬'構造函數?
所以問題是:有沒有辦法只聲明一次在基地,而不需要在派生類中聲明?就像一個普通的虛擬功能一樣。
我正在使用C++ 11。
可以繼承所有基類的構造函數:[繼承構造]
struct base {
base(int, float, void*, bool, std::nullptr_t, std::size_t) { /* ... */ }
};
struct derived : base {
using base::base;
};
derived d(0,0.0f, nullptr, false, nullptr, 0);
使用(http://en.cppreference.com/w/cpp/language/using_declaration) – 0x499602D2
謝謝@ 0x499602D2 ,這正是我想要的! – jayven