我想我只是缺少一些小東西。我想爲T =具有任何參數的模板類的實現專門化模板類的構造函數。對不起,如果我的單詞有點關閉。 基本上,我需要允許鋸齒狀的二維數組,所以我可能有一個ArEl<ArEl<int>>
,我想預先初始化所有數組長度。如何在部分類模板專業化中實現繼承?
using namespace std;
template <typename T>
class ArEl {
public:
ArEl(size_t size = 0)
: rSize(size), rArray(rSize ? new T[rSize]() : nullptr) {}
ArEl(const ArEl& other);
virtual ~ArEl() { delete[] rArray; }
void swap(ArEl& first, ArEl& second);
void redim(size_t size);
private:
std::size_t rSize;
T* rArray;
};
template <typename T, typename T1>
class ArEl<ArEl<T>> : public ArEl<T1>{
ArEl(size_t size = 0);
};
編輯:
我得到這個錯誤:
error: template parameters not deducible in partial specialization:
class ArEl<ArEl<T>> : public ArEl<T1>{