Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Скачивание html исходника http://www.cyberforum.ru/cpp-beginners/thread946078.html
Здравствуйте) Хочу попросить помощи в следующем: Есть интернет страница с полем ввода данных (номер) после ввода номера на странице (той же) выдается информация о введенном номере Хочу написать программу которая методом перебора будет сохранять информацию о номерах перебор и поиск в исходнике, думаю, осилю сам Хочу лишь знать как сохранять исходники через XCode Пробовал подключать Asio (оно...
C++ NDEBUG и DEBUG зачем нужны константы NDEBUG и DEBUG?? спасибо. http://www.cyberforum.ru/cpp-beginners/thread946056.html
Исходник чата C++
Всем приветик!:) Хочу задать вам один глупый вопросик...:) Есть у кого нибудь исходник какого нибудь чата?:) Что то искала, ничего подходящего не нашла...:( В общем, сейчас попробую описать поподробней, как я вижу то, что ищу:) Есть программка. Такая же программка есть ещё у нескольких человек. Я пишу что нибудь и нажимаю кнопку "Отправить" и моё сообщение появляется у всех людей, у кого...
C++ c++ box2d и opencv
Работаю на Xcode с openframework, конкретнее с библиотеками box2d и opencv. Задача захватывать контур с помощью opencv и делать его физическим объектом. Добился того что могу получать точки определенного контура так: ofPoint contours; vector <ofPoint> simpleCountour; for(int i = 0; i < contourFinder.nBlobs; i++) { simpleCountour = contourFinder.blobs.at(i).pts; contours =...
C++ Разработка приложения для symbian на языке c++ http://www.cyberforum.ru/cpp-beginners/thread946033.html
Разработка приложения для symbian на языке c++. Приложение-записная книга с простейшим интерфейсом.Проблема заключается в следующем - если в записи встретится номер телефона, то его можно выделить ,передать в строку набора номера и позвонить. Нужен код именно последней функции.
C++ Алгоритм шифрования из exe файла Hola amigos! :) На C++ к слову я мало что понимаю и столкнулся с некой необходимостью получить алгоритм шифрования обычного CD-ключа из exe-файла. Пишу на C# простой установщик игры со всеми патчами и дополнениями, но помимо ключей реестра необходимо еще и позволить пользователю вводить свой CD-ключ, а записывается он в реестр пройдя некий алгоритм шифрования (банальный hex-bin не подойдет).... подробнее

Показать сообщение отдельно
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
30.08.2013, 20:46     const_cast для чего и как функционирует
Дошел в свой книге (Дейтел) до 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 более мудреные цели?
И вообще зачем это нужно, ведь проще объявить временную переменную и присвоить ей значение константы и уже крутить эту временную переменную, в чем смысл?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru