ciao.
E' un po che programmo in c++ e un po che ho questo dubbio:
quando voglio farmi restituire un oggetto da una funzione faccio cosi:
codice:
void classe::myFunc(&oggetto);
e nella dichiarazione:
void myFunc(oggetto * obj){implementazione};
il casino è questo:
se instanzio un oggetto
codice:
oggetto * pOggetto = new oggetto();
e poi ad es all'interno di un ciclo chiamo la mia funzione passando quell'oggetto:
ed inserisco il tutto in un array.
codice:
oggetto * pOggetto = new oggetto();
while(indice<MAXINDICE)
{
myFunc(&pOggetto);
myArray.add(pOggetto);
}
alla fine mi ritrovo un array con tutti gli oggetti uguali , è giusto?
perchè passo il riferimento dell'oggetto all'array, ma il riferimento è lo stesso , perchè dichiaro lo dichiaro una sola volta fuori dal ciclo.
come faccio ad avere un array con gli oggetti giusti?ossia passando all'array il valore dell'oggetto e non il riferimento all'oggetto?
Il tutto stà secondo me nella posizione dove si dichiara l'oggetto:
tipo , questo è un approccio giusto ?
codice:
while(indice<MAXINDICE)
{
oggetto * pOggetto = new oggetto();
myFunc(&pOggetto);
myArray.add(pOggetto);
}
o è meglio fare in altir modi?
voi cosa mi consigliate ?perchè ,mi viene il dubbio ad es di dichiarare il puntatore all' interno della funzione che chiamo ,ma non so se poi all' uscita è valido!!
grazie.