Ich denke, ich vermisse nur etwas Kleines. Ich möchte den Konstruktor einer Vorlagenklasse für eine Implementierung spezialisieren, wobei T = die Vorlagenklasse mit einem beliebigen Parameter ist. Entschuldigung, wenn mein Vokabular ein bisschen aus ist. Grundsätzlich muss ich für gezackten 2D-Arrays ermöglichen, so dass ich vielleicht eine ArEl<ArEl<int>>
haben, und ich möchte alle Array-Längen preinitialise.Wie implementiere ich die Vererbung in einer partiellen Klassenvorlagenspezialisierung?
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);
};
EDIT:
Ich erhalte diese Fehlermeldung:
error: template parameters not deducible in partial specialization:
class ArEl<ArEl<T>> : public ArEl<T1>{