Este no es el lugar correcto para hacer esta pregunta, así que para referencia futura, haga este tipo de preguntas en Stack Overflow.
Realmente no da suficiente código para estar totalmente seguro de lo que está mal, pero una cosa que me viene a la mente dado el error es lo siguiente. Primero, tenga en cuenta que su get(int i)
método devuelve una copia de un Card
, no el actual ith Card
de la colección de tarjetas. Esto significa que cuando lo haga :
(*Turn).getBoard().get(i).m_has_been_played_this_turn = 0;
En realidad, está configurando la variable m_has_been_played_this_turn
para una Card
instancia, que puede ser de donde proviene el error, ya que esta instancia Card
temporal debe ser una rvalue
, no una lvalue
.
Una forma de cambiar esto podría ser cambiar su código a lo siguiente:
Card card_ = (*Turn).getBoard().get(i); card_.m_has_been_played_this_turn = 0;
Pero esto todavía no va a coincidir Completa lo que creo que quieres, ya que card_
es solo una copia del ith Card
en tu colección de tarjetas. Si realmente desea modificar el ith Card
en su colección de tarjetas, cambie la definición de get(int i)
a la siguiente:
Card & Card_collection::get(int i)
Eso &
significa que pasará un Card
de get(int i)
por referencia, lo que le permite modificar el Card
dentro de la colección de tarjetas directamente. Entonces, el código original que escribió para configurar m_has_been_played_this_turn
debería estar bien.