Zitat:
class Objekt
{
private:
int zahl;
public:
Objekt(int pZahl) {zahl=pZahl;};
~Objekt() {};
void getZahl() {cout << zahl << "\n";};
};
struct array
{
array *Nextarray;
Objekt *pObjekt;
};
class Array
{
private:
array *Firstobjekt;
int arraysize;
public:
Array(Objekt *pFirstobjekt);
~Array();
void newElement(Objekt *pObjekt);
void killElement(int index);
Objekt *getElement(int index);
};
Array::Array(Objekt *pFirstobjekt)
{
arraysize=1;
Firstobjekt=new array;
Firstobjekt->pObjekt=pFirstobjekt;
}
Array::~Array()
{
array *kill=Firstobjekt;
for (int i=0; i<arraysize; i++)
{
delete kill->pObjekt;
array *temp=kill->Nextarray;
delete kill;
kill=temp;
}
}
void Array::newElement(Objekt *pObjekt)
{
array *lastelement=Firstobjekt;
for (int i=0; i<(arraysize-1); i++)
{
lastelement=lastelement->Nextarray;
}
lastelement->Nextarray=new array;
lastelement->Nextarray->pObjekt=pObjekt;
lastelement->Nextarray->Nextarray=NULL;
arraysize++;
}
void Array::killElement(int index)
{
if ((index+1)>arraysize || index<0)
{
cout << "Arrayobjekt nicht vorhanden!\n";
}
else
{
array *kill=Firstobjekt;
array *prekill;
for (int i=0; i<index; i++)
{
prekill=kill;
kill=kill->Nextarray;
}
if (index==0)
{
Firstobjekt=kill->Nextarray;
delete kill->pObjekt;
delete kill;
}
else
{
prekill->Nextarray=kill->Nextarray;
delete kill->pObjekt;
delete kill;
}
arraysize--;
}
}
Objekt * Array::getElement(int index)
{
array *element=Firstobjekt;
for (int i=0; i<index; i++)
{
element=element->Nextarray;
}
return element->pObjekt;
}