que estoy trabajando actualmente en un juego de cartas, y estoy teniendo problemas con algún código de inicialización:inicializar una matriz de objetos
// in my class...
Card cards[20];
// in method...
for(int i = 0; i <= 20;i++)
cards++ = new Card(i, /*i as char +*/ "_Card.bmp");
El problema es que mi compilador de que me dice que no es una cards++
l -valor. He leído toda la equivalencia de la matriz de punteros, y pensé que lo entendía, pero, por desgracia, no puedo hacer que funcione. Según entiendo, dado que cards
se degrada a un puntero, y el operador new
me da un puntero a la ubicación de mi nueva instancia de la tarjeta, entonces el código anterior debería compilarse. ¿Derecha?
He intentado usar un subíndice también, pero no es cards+i
, cards++
, y cards[i]
¿solo 3 formas de decir lo mismo? Pensé que cada uno de ellos eran l-valores y se tratan como punteros.
tarjetas + devuelvo tarjetas + i; cards ++ incrementa las cartas en uno; las tarjetas [i] devuelven una referencia al elemento i-ésimo en las cartas. Todos son diferentes. –