Attualmente sto lavorando su un gioco di carte, e sto avendo problemi con alcuni codice di inizializzazione:inizializzazione un array di oggetti
// in my class...
Card cards[20];
// in method...
for(int i = 0; i <= 20;i++)
cards++ = new Card(i, /*i as char +*/ "_Card.bmp");
Il guaio è che il mio compilatore che mi diceva che cards++
non è un l -valore. Ho letto sull'intera cosa dell'equivalenza del puntatore e ho pensato di averlo capito, ma purtroppo non riesco a farlo funzionare. La mia comprensione è che poiché cards
si riduce a un puntatore e l'operatore new
mi dà un puntatore alla posizione della mia nuova istanza di Card, quindi il codice sopra riportato dovrebbe essere compilato. Destra?
Ho provato a utilizzare anche un pedice, ma non è cards+i
, cards++
e cards[i]
solo 3 modi di dire la stessa cosa? Ho pensato che ognuno di questi fosse un valore di l e sono trattati come indicatori.
carte + restituisco le carte + i; le carte ++ aumentano le carte di una unità; le carte [i] restituiscono un riferimento all'elemento i'th nelle carte. Sono tutti diversi. –