1
我想在派生類構造函數中初始化一個基類的成員。C++模板和派生類成員初始化
template <typename T, int D>
class BaseClass {
// ...
protected:
T values[D];
};
template<typename T>
class DerivedClass : public BaseClass<T, 3> {
public:
using BaseClass<T, 3>::values;
DerivedClass(T a, T b, T c) : values{a, b, c} {}
};
但是我得到這個:
error: 'using BaseClass<T, 3>::values' is not a non-static data member of 'DerivedClass<T>'
DerivedClass(T a, T b, T c) : values{a, b, c} {}
^
爲什麼沒有這可以嗎?
此外,我可以在構造函數體中賦值,但我不能再使用初始化列表。
除了應該使用基類構造函數來初始化基類成員這一事實嗎?如果需要的話,使用'std :: forward'。 – 2014-09-01 14:21:36