template <class V>
class ArrayList: public List<V>
{
public:
ArrayList(const List<V>&);
// use delegating constructor (C++11 feature)
ArrayList(const ArrayList& val) : ArrayList( static_cast<const List<V>&>(val) ) {}
void toArray(void*) const;
private:
};
If your compiler does not support C++11:
template <class V>
class ArrayList: public List<V>
{
public:
ArrayList(const List<V>& val) { construct(val;) }
ArrayList(const ArrayList& val) { construct(val;) }
void toArray(void*) const;
private:
void construct(const List<V>&);
};