Трудности обновить указатель с помощью методов класса

Кроме @neverwalkaloner 's answer , вы можете сделать это так же,

class PollSerializer(serializers.ModelSerializer):
    choices_set = ChoiceSerializer(many=True, read_only=True, required=False)

    class Meta:
        model = Poll
        fields = ('id', 'question_text', 'pub_date', 'choices_set')

-3
задан S.Gradit 19 January 2019 в 17:11
поделиться

1 ответ

std::vector<Case> Carte_2 объявляется как локальная переменная в вашем конструкторе, поэтому, когда конструктор заканчивается, эта переменная удаляется навсегда.

Так что Personnage::go_down() не может получить к нему доступ. Я подозреваю, что вы хотели, чтобы Carte_2 был атрибутом Personnage class.

Кроме того, в следующий раз, пожалуйста, опубликуйте MCVE, прочитайте https://stackoverflow.com/help/mcve

Если Carte_2 подразумевается как глобальная переменная как Вы прокомментировали, затем выполните:

const std::vector<Case>& Carte_2()
{
    static std::vector<Case> vect = { Case(1, 0, 0,false, false,"plop"),
                                      Case(99, 0, 0,false, false,"prout") };
    return vect;
}

Затем в Personnage::Personnage просто выполните:

m_tile = &(Carte_2()[0]); // if m_tile is a Case*

в Personnage :: go_down (), выполните:

m_tile = &(Carte_2()[1]); // if m_tile is a Case*
0
ответ дан jpo38 19 January 2019 в 17:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: