我今天早些时候发布了关于模板类的内容,但相当遥远,从这里得到了我以前的问题的解决方案。当然,处理这个问题时,总会有一个我无法想象的新问题。模板类和初始化为零的数组
鉴于下面的构造:
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