crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Ошибка компилятора: passing `const MyClass' as `this' argument of
Iron Bug
  опции профиля:
сообщение 9.4.2010, 14:56
Сообщение #11


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Litkevich Yuriy @ 9.4.2010, 14:04) *
Цитата(Litkevich Yuriy @ 9.4.2010, 14:16) *
discards qualifiers
буквально "бракованные квалификаторы" (хотя может тут discards - глагол).
Столку сбивает тот факт, что якобы я помещаю константный экземпляр своего класса в качестве this.

discards qualifiers никак не может быть переведено как "бракованные квалификаторы". тут значение совершенно однозначно: "отбрасывает квалификаторы".
а указатель this при работе передаётся первым параметром в любой метод класса. просто эта часть работы с виртуальными таблицами скрыта от программиста. читайте классику.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 12.4.2010, 10:33
Сообщение #12


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Говоря совсем просто, компилятор ругается на вызов неконстантной функции из константной.
При этом состав полей класса неважен. Как и то что вызываемая функция может ничего в экземпляре не менять.
Важно только наличие квалификатора const в сигнатурах.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 19:43