Resposta
Este não é o lugar certo para fazer esta pergunta, portanto, para referência futura, faça esses tipos de perguntas no Stack Overflow.
Você não fornece código suficiente para ter certeza total do que está errado, mas uma coisa que vem à mente devido ao erro é o seguinte. Primeiro, observe que seu get(int i)
método está retornando uma cópia de um Card
, não o real ith Card
da coleção de cartões. Isso significa quando você faz :
(*Turn).getBoard().get(i).m_has_been_played_this_turn = 0;
Na verdade, você está definindo a m_has_been_played_this_turn
variável para uma Card
instância, que pode ser a origem do erro, uma vez que esta instância Card
temporária deve ser uma rvalue
, não uma lvalue
.
Uma maneira de mudar isso pode ser mudando seu código para o seguinte:
Card card_ = (*Turn).getBoard().get(i); card_.m_has_been_played_this_turn = 0;
Mas isso ainda não vai acc omplique o que acredito que você deseja, já que card_
é apenas uma cópia do ith Card
em sua coleção de cartões. Se você realmente deseja modificar o ith Card
em sua coleção de cartões, altere a get(int i)
definição para o seguinte:
Card & Card_collection::get(int i)
Que &
significa que você passará um Card
de get(int i)
por referência, permitindo que você modifique o Card
na Coleção de Cartões diretamente. Então, o código original que você escreveu para definir m_has_been_played_this_turn
deve funcionar corretamente.