#include <iostream>
using namespace std;
template <class T>
class myset{
private:
T *pArray;
int size;
public:
myset<T>(){
pArray = new T[0];
int size =0;
}
void addItem(T iVal){
size++;
T* newArray = new T [size];// allocate bigger array //
for(int i=0; i< size-1; i++){
newArray[i] = pArray[i]; // IT IS CRASHING BECAUSE OF THIS LINE
}
pArray[size -1] = iVal;
pArray = NULL;
pArray = newArray;
}
};
int main()
{
myset<int> a;
myset<double> d;
a.addItem(3);
a.addItem(5);
}
Was ich versuche, ist eine dynamische Array von jeder Vorlage zu machen. In meiner Add-Funktion versuche ich, mein altes Array in mein neues Array zu kopieren. Kann mir jemand sagen, warum es nicht funktioniert?Warum stürzt mein Programm bei dieser einen Zeile ab?
Warum überschatten Sie die Größe Ihrer Klasse im Ctor? –
Was haben Sie bei der Verwendung des Debuggers festgestellt? –
* Was ich versuche zu tun ist ein dynamisches Array von jeder Vorlage * - Was ist los mit nur 'std :: vector'? –
PaulMcKenzie