我今天早些時候發佈了關於模板類的內容,但相當遙遠,從這裏得到了我以前的問題的解決方案。當然,處理這個問題時,總會有一個我無法想象的新問題。模板類和初始化爲零的數組
鑑於下面的構造:
template <typename Type, int inSize>
sortedVector<Type, inSize>::sortedVector():
size(inSize), vector(new Type[inSize]), amountElements(0)
{}
我想使一個動態數組,這是我然後可以通過一個附加的方法輸入的任意類型的元素進入。從主的通話將如下所示:
sortedVector<Polygon, 10> polygons;
sortedVector<int, 6> ints;
我怎麼能初始化數組爲零時,它的構造?我無法將對象設爲零;)
我還以爲我被聰明,並試圖過載多邊形= - 運算符和給定一個int那就什麼也不做。原來我不能這麼做):
有什麼好的建議嗎?
而且,這裏的模板類sortedVector:
template <typename Type, int inSize>
class sortedVector
{
public:
sortedVector();
int getSize();
int getAmountElements()
bool add(const Type &element);
private:
Type *vector;
int size;
int amountElements;
};
以防萬一還多邊形:
class Polygon
{
public:
Polygon();
Polygon(Vertex inVertArr[], int inAmountVertices);
~Polygon();
void add(Vertex newVer);
double area();
int minx();
int maxx();
int miny();
int maxy();
int getAmountVertices() const;
friend bool operator > (const Polygon &operand1, const Polygon &operand2);
friend bool operator < (const Polygon &operand1, const Polygon &operand2);
private:
Vertex *Poly;
int amountVertices;
};
以下是一些建議:如果涉及家庭作業,請將**作業**標籤添加到您的問題中。否則,你會得到很多「使用std :: vector」類型的答案。 – 2012-03-18 16:59:48