【发布时间】:2014-09-23 17:30:34
【问题描述】:
假设我有一个基模板类数组:
template <class T = Point> class Array{
protected:
T* m_data;
int size;
public:
Array(); // constructor
Array(int n); // constructor
Array(const Array<T>& s_data); //Copy Constructor
// and so on..
}
它有构造函数和析构函数。我还有一个派生的模板类 NumericArray:
template <class T = int>
class NumericArray:public Array<T>{
public:
NumericArray();
NumericArray(int n);
NumericArray(const NumericArray<T>& s_data);
~NumericArray(); //destructor
};
由于我需要在基类中初始化私有成员,所以我需要在派生构造函数中调用基构造函数。但是怎么做?我试过了
template <class T>
NumericArray<T>::NumericArray(int n){
Array<T>(n); // it will think I create a Array<T> names n
}
template <class T>
NumericArray<T>::NumericArray(int n):Array(n){
// No field in NumericalArray called Array
}
有什么想法吗?
【问题讨论】:
-
为什么你没有尝试其他 2 个变种,只是好奇?
-
@Slava 我做到了。以这个为例。
-
如果你这样做了,你会打对路