name = "", int score = 0)
{
this->name = name;
this->score = score;
}
int getScore() { return score; } const
string getName() { return name; } const
void setName(const string& name) { this->name = name; }
void setScore(const int& score) { this->score = score; }
};
int main()
{
vector<Person> people = {
Person("Иван", 190),
Person("Дмитрий", 156),
Person("Владимир", 191),
Person("София", 142),
Person("Никита", 98),
Person("Сергей", 232),
Person("Эдуард", 201),
Person("Иван", 174),
};
sort(people.begin(), people.end(), [](const Person& person1, const Person& person2)
{
return person1.getScore() < person2.getScore();
});
}
Выдает кучу ошибок. ide подсвечивает person.getScore() со словами: "обьект содержит квалификаторы типа, не совместимые с Person::getScore. Тип обьекта: const Person".
Если убрать const в геттерах и сеттерах, то ошибка не пропадает.
В чем проблема?
А разве ожидается, что внутри лямбда функции или функции sort объект класса person будет изменяться?
Я говорю про другое. const qualifier на методах должен быть до тела, а не после
Обсуждают сегодня