|
Einsendung:
Datei "Vector.h"
Datei "Vector.h":
#include <assert.h>
template<class T>
class Vector
{
private:
T *m_data;
int m_size;
public:
Vector(int size)
{
m_size=size;
m_data=new T[m_size];
};
Vector(const Vector &derAndereVector)
{
m_size=derAndereVector.m_size;
m_data=new T[m_size];
for(int i=0;i<m_size;++i)
m_data[i]=derAndereVector.m_data[i];
};
~Vector()
{
delete[] m_data;
};
T& operator[](int index)
{
assert(index>=0);
assert(index<m_size);
return m_data[index];
};
int getSize()
{
return m_size;
};
void grow(int newSize)
{
// Diese Methode legt ein neues Array der neuen Größe an,
T *newData=new T[newSize];
// kopiert dann alle Werte des alten Arrays in das neue Array,
for(int i=0;i<m_size;++i)
newData[i]=m_data[i];
// löscht das alte Array
delete[] m_data;
// und setzt dann die Attribute m_size und m_data auf die
//neuen Werte.
m_size=newSize;
m_data=newData;
};
Vector &operator=(const Vector &derAndereVector)
{
if(&derAndereVector!=this)
{
delete m_data;
m_size=derAndereVector.m_size;
m_data=new T[m_size];
for(int i=0;i<m_size;++i)
m_data[i]=derAndereVector.m_data[i];
};
return *this;
};
}; |
Genau so ist es richtig.
Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann
schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern.
[aktuelle Version]
[inhalt]
[index]
[Fehlerkorrektur, Verbesserungsvorschlag]
© Volkard Henkel <volkard@normannia.de>,
last update: 08/25/00
|
|