Array di oggetti con costruttore

di Anonimizzato11901 il
5 risposte
Ciao, volevo chiedervi come in c++ è possibile creare un array di oggetti con costruttore.

class prova{
public:
    prova(int x,int y){
         a = x;
         b = y;
    }
private:
    int a,b;
}

Lo chiedo perchè nella definizione "prova test[2]" viene lanciato il costruttore di default. Come posso inizializzare un array di 2 oggetti prova con il costruttore definito da me?
Altra domanda, forse più complicata: come posso inizializzare dinamicamente in un ciclo un numero n di istanze di oggetti di classe prova senza conoscerne il numero a priori?

5 Risposte

  • Utilizza un vettore di puntatori
    
    	prova *test[2];
    	for(int i=0; i<2; i++)
    		test[i] = new prova(i, i);
    
  • Ottimo, ti ringrazio! E se non conoscessi a priori il numero di istanze da creare?
  • Direi che ci si potrebbe arrivare facilmente ... se n è il numero di oggetti
    
    	prova **test;
    	test = new prova *[n];
    	for(int i=0; i<n; i++)
    		test[i] = new prova(i, i);
    
  • Scusami, intendevo nel senso di decidere in qualsiasi momento di aggiungere un elemento all'array, forse bisognerebbe copiarlo e crearne uno nuovo? Ma come?? !?!
Devi accedere o registrarti per scrivere nel forum
5 risposte