我有兩個班,點和像素:C++繼承/模板問題
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,但後來我似乎遇到了問題,因爲像素是一個類模板。
有沒有人有建議?我可以通過製作一個類模板來做到這一點嗎?
我認爲'coll'也應該是一個模板類。然後,您可以部分專門化「coll」來獲取點和像素。 – Philipp 2010-07-12 15:45:27
像素是一組座標(即繼承'點')還是它有座標(即包含一個點的實例)? – Patrick 2010-07-12 15:52:21
它從點繼承。 – amc 2010-07-12 15:57:54