Fechado. Esta questão está fora do tópico . Atualmente não está aceitando respostas.

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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *