![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| KQT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
Есть функция
На вторую строку выдает invalid conversion from `const List<int>*' to `List<int>*'. Как это можно обойти и получить указатель по константной ссылке? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Добавлено через 3 минуты и 4 секунды Только учти, что несмотря на то, что ты получил после этого неконстантный объект и, несмотря на то, что при попытке изменить такой объект(к примеру lcur->clear() ) компилятор не ругнётся на такую попытку, делать этого ты не имеешь права! После применения const_cast ты должен сам следить за соблюдением константности этого объекта. Это сообщение отредактировал(а) archimed7592 - 1.11.2007, 07:38 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
И программа видимо работать будет очень, очень непредсказуемо. Обычно указатели расходятся по всему проекту (на то они и указатели) и поэтому добавление строки в одном модуле может по***ить тебе всю малину в другом. В общем если просто для исследовательских целей, юзай. А в команде такое писать нельзя.
--------------------
|
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
chipset, такое можно писать, к примеру, когда уже есть код, который берёт некостантный указатель/ссылку, но в реальности не меняет сам объект(и ты это доподлинно знаешь) - к примеру как с win32api... Тогда можно без каких-либо угрызений совести сделать const_cast. Если же ты не уверен в этом(или вообще сам собираешься изменять объект), то только делать копию.
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| KQT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
исчерпавающе. Спасибо!
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |