我想編寫一個數學矢量模板。我有一個接受類型和大小作爲模板參數的類,有很多數學運算方法。 現在我想寫的專業化,其中矢量< 3>例如有x,y,z作爲分別引用data [0..3]的成員。C++ - 使用默認模板作爲專業化的基礎
問題是,我不知道如何創建一個專門化,它繼承了默認模板中的所有內容,而無需創建基類或將所有內容寫入兩次。
什麼是最有效的方法來做到這一點?
template<class Type, size_t Size>
class Vector {
// stuff
};
template<class T>
class Vector<3,T>: public Vector {
public:
T &x, &y, &z;
Vector(): Vector<>(), x(data[0]), y(data[1]), z(data[2]){}
// and so on
};
創建基類是典型的方法。 –