Il problema č che se io creo un oggetto cosė
IntegerSet a;
viene chiamato questo costruttore
Codice:
IntegerSet::IntegerSet(){
set = new int[MAX_ELE];
for(int i=0; i<MAX_ELE; i++)
set[i]=0;
elements=0;
}
che crea un insieme vuoto inizializzando tutti gli elementi dell'array a 0 ed elemnts a 0, e questo funziona.
Invece se creo un oggetto cosė
IntegerSet a(5,6);
dovrebbe chiamare l'altro costruttore:
Codice:
IntegerSet::IntegerSet(int a, int b, int c,int d,int e){
IntegerSet();
insertElement(a);
insertElement(b);
insertElement(c);
insertElement(d);
insertElement(e);
}
che a sua volta dovrebbe richiamare il costruttore per creare l'insieme vuoto poi inserire gli elementi 5 e 6. Il problema č che il primo costruttore non viene eseguito perche quando stampo il contenuto dell'insieme mi vengono fuori dei valori assurdi come se la memoria dell'array e della variabile elements non fosse inizializzata.
Spero di essermi spiegato meglio.