Передача константных объектов в качестве аргумента «this»: ошибка дисквалификации квалификатора
В C передача константных объектов в качестве аргументов «this» в функции-члены может привести к ошибкам «передача 'const xxx' как аргумент 'this' функции-члена отбрасывает квалификаторы». Это происходит потому, что компилятор учитывает возможность того, что неконстантные функции-члены могут изменить объект, что запрещено для константных объектов.
Анализ проблем
В предоставленном коде , объекты в наборе сохраняются как const StudentT. При доступе к функциям-членам getId() и getName() внутри цикла компилятор обнаруживает эту проблему, поскольку объекты являются константными, а функции-члены не помечены как константные.
Решение
Чтобы устранить ошибку, функции getId() и getName() должны быть преобразованы в const:
int getId() const { return id; } string getName() const { return name; }
Это позволяет вызывать функции для константных объектов без нарушения правил константы.
Дополнительные примечания
inline bool operator
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3