crossplatform.ru

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

> ещё одна загадка )
Алексей1153
  опции профиля:
сообщение 10.12.2012, 15:00
Сообщение #1


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

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


CONSTref - константный указатель на контейнер. Стало быть содержимое контейнера тоже должно быть недоступно для изменения через эту ссылку. Но:


        typedef std::map<int,int*> td_map;
        td_map m;
        m[0]=new int(7);

        const td_map& CONSTref=m;



        int* pointer1=CONSTref[0];        //ругается, как и должно быть


        int* pointer2=CONSTref.begin()->second;        //фокус: прокатывает :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 11.12.2012, 20:49
Сообщение #2


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

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

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




Репутация:   12  


да нет в этом ничего странного. всё строго по определениям, которые ты сам задал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 25.11.2024, 18:23