Форум программистов, компьютерный форум, киберфорум
Наши страницы

const_cast для чего и как функционирует - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скачивание html исходника http://www.cyberforum.ru/cpp-beginners/thread946078.html
Здравствуйте) Хочу попросить помощи в следующем: Есть интернет страница с полем ввода данных (номер) после ввода номера на странице (той же) выдается информация о введенном номере Хочу написать...
C++ NDEBUG и DEBUG зачем нужны константы NDEBUG и DEBUG?? спасибо. http://www.cyberforum.ru/cpp-beginners/thread946056.html
Исходник чата C++
Всем приветик!:) Хочу задать вам один глупый вопросик...:) Есть у кого нибудь исходник какого нибудь чата?:) Что то искала, ничего подходящего не нашла...:( В общем, сейчас попробую описать...
C++ c++ box2d и opencv
Работаю на Xcode с openframework, конкретнее с библиотеками box2d и opencv. Задача захватывать контур с помощью opencv и делать его физическим объектом. Добился того что могу получать точки...
C++ Разработка приложения для symbian на языке c++ http://www.cyberforum.ru/cpp-beginners/thread946033.html
Разработка приложения для symbian на языке c++. Приложение-записная книга с простейшим интерфейсом.Проблема заключается в следующем - если в записи встретится номер телефона, то его можно выделить...
C++ Алгоритм шифрования из exe файла Hola amigos! :) На C++ к слову я мало что понимаю и столкнулся с некой необходимостью получить алгоритм шифрования обычного CD-ключа из exe-файла. Пишу на C# простой установщик игры со всеми... подробнее

Показать сообщение отдельно
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,225

const_cast для чего и как функционирует - C++

30.08.2013, 20:46. Просмотров 877. Ответов 5
Метки (Все метки)

Дошел в свой книге (Дейтел) до const_cast, не могу понять смысла, т.к. там нагромождено не нужно кода в примере, в 5 раза больше самого примера, вот я сделал свой пример:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
const int var = 10;
 
int *ptr = const_cast<int *>(&var);
 
cout << "*ptr: " << *ptr << " ptr: " << ptr << endl; // 10
cout << "var: " << var << " &var: " << &var << endl; // 10
 
*ptr = 15;
 
cout << "*ptr: " << *ptr << " ptr: " << ptr << endl; // 15
cout << "var: " << var << " &var: " << &var << endl; // 10


var и ptr указывают на одно и тоже значение т.е. имеют один и тот же адрес в памяти, при этом, если обратится к var то оно будет равно 10, а если к *ptr то оно будет равно 15, как так?

Вообще техническая реализация меня не интересует, вопрос, работает ли оно верно? и как я понимаю смысл в этом то и заключается, если вдруг мне надо изменить константное значение при этом что бы оно не менялось (бред по большому счету), то я делаю указатель, использую const_cast и могу указатель меня сколько влезет, а вот само константное значение остается прежним? правильно? или у const_cast более мудреные цели?
И вообще зачем это нужно, ведь проще объявить временную переменную и присвоить ей значение константы и уже крутить эту временную переменную, в чем смысл?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru