PDA

Visualizza la versione completa : Oggetti in C++


fulmine69
10-06-2009, 12:32
Salve a tutti.

Volevo chiedere come creare diversi oggetti da una classe, in c++, senza diachiararli in un matrice.

Per istanziare un singolo oggetto faccio così, "Oggetto obj;", giusto?

Per diversi oggetti potrei fare così:
Oggetto obj[10];
for (int n=0;n<10;n++) {
obj[n].setPosition(100,100);
}
Non l'ho testato ma dovrebbe essere così, giusto?

Ma se dovessi istanziare oggetti di cui non conosco il numero?
Potrei fare così:
Oggetto *obj;
for (int n=0;n<NUM_OGGETTI;n++) {
obj=new Oggetto;
obj->setPosition(100,100);
}
Così potrebbe funzionare? Ma se funzionasse, poi, come potrei accedere agli oggetti?

Spero di essere stato chiaro.

Grazie anticipatamanete a tutti :)

Stoicenko
10-06-2009, 12:45
Oggetto *obj; for (int n=0;n<NUM_OGGETTI;n++) { obj=new Oggetto; obj->setPosition(100,100); }

attento che è errato




Oggetto *obj = new Oggetto[NUM_OGGETTI]; //sennò punta a NULL

for (int n=0; n<NUM_OGGETTI; n++)
{
obj[n].setPosition(100,100); //è un array do oggetti non di puntatori, quindi niente freccia
}



sperò di non aver scritto male che sono di corsa

sebaldar
10-06-2009, 15:11
deve essere previsto nella classe Oggetto un costruttore senza argomenti, che sarà quello utilizzato per la creazioni delle istanze.
ciao
sergio

Loading