![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Royan |
|
||||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Хехе только что писал вопрос, чтоб узнать в чем причина, а оказалось все просто, поэтому это не вопрос, а что-то типа типа полезного совета (просто жаль выкинуть столько напечатанного текста может кому пригодится)
Итак. У меня следующий код:
Оказалось, что коли параметр константный, то через него нельзя вызывать не константную функцию! Но здесь есть еще один момент который мне не понятен, если myData и cellName объявлены как protected или private разве к ним можно обращаться через операторы "." или "->" даже если сам copy является константной ссылкой?:
По пока не понятной мне причине у меня этот код прокатывает без ошибок.... Это сообщение отредактировал(а) Royan - 8.4.2003, 18:14 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
protected и private с константностью никак ни связанны. Компилятор, в данном случае, лишь следит за тем, чтобы константый объект потенциально не мог измениться. Он же не знает, что твоя функция GetMyData() не меняет собственно объект, и раз она объявленна неконстантной, то вполне возможно, что и меняет. А когда ты обращаешься к переменной, то либо у тебя InitCellName принимает константный аргумент, либо компилятор не воспринимает изменения члена объекта как изменение самого объекта. В твоем случае объявить GetCellName() и GetMyData() константными гораздо правильнее, нежели напрямую обращаться к защищенным переменным. А насчет константности, повторю Джеффа Элджера - ей надо следовать либо с особой фанатичностью (т. е. объявлять константным абсолютно все, что на эту роль подходит), либо отказаться от нее вообще, иначе концы не сведешь. Первое, конечно, предпочтительнее. -------------------- Волны гасят ветер... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |