У меня есть два класса, точка и пиксель:
class point {
public:
point(int x, int y) : x(x), y(y) { };
private:
int x, y;
}
template <class T>
class pixel : public point {
public:
pixel(int x, int y, T val) : point(x, y), val(val) { };
private:
T val;
}
Теперь вот моя проблема. Я хочу создать контейнерный класс (назовем его coll), который имеет собственный вектор точек или пикселей. Если экземпляр coll содержит пиксели, я хочу, чтобы у него был метод toArray (), который преобразует его вектор пикселей в массив T, представляющий содержимое вектора.
Я собирался сделать это с помощью наследования: то есть я мог бы создать базовый класс coll, содержащий вектор точек, и производный класс, содержащий дополнительный метод, но затем я, кажется, столкнулся с проблемами, поскольку pixel - это класс шаблон.
У кого-нибудь есть предложения? Могу ли я сделать это как-нибудь, сделав шаблон класса coll?