Ошибка компилятора: passing `const MyClass' as `this' argument of |
Здравствуйте, гость ( Вход | Регистрация )
Ошибка компилятора: passing `const MyClass' as `this' argument of |
Iron Bug |
9.4.2010, 14:56
Сообщение
#11
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
discards qualifiers буквально "бракованные квалификаторы" (хотя может тут discards - глагол).Столку сбивает тот факт, что якобы я помещаю константный экземпляр своего класса в качестве this. discards qualifiers никак не может быть переведено как "бракованные квалификаторы". тут значение совершенно однозначно: "отбрасывает квалификаторы". а указатель this при работе передаётся первым параметром в любой метод класса. просто эта часть работы с виртуальными таблицами скрыта от программиста. читайте классику. |
|
|
Tonal |
12.4.2010, 10:33
Сообщение
#12
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Говоря совсем просто, компилятор ругается на вызов неконстантной функции из константной.
При этом состав полей класса неважен. Как и то что вызываемая функция может ничего в экземпляре не менять. Важно только наличие квалификатора const в сигнатурах. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 13:20 |