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

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# простой установщик игры со всеми... подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
30.08.2013, 21:15
Цитата Сообщение от VLK Посмотреть сообщение
что то я не совсем понимаю, когда есть слово const, это значит что значение изменять нельзя, тут вроде как я const снимаю, но при этом все равно не могу менять значение, в чем смысл?
Ну я знаю один случай, когда смысл есть: когда есть несостыковки в типизации; например (утрированный пример), тебе надо использовать "левую" ф-ю, которая принимает аргументом char *:
C++
1
size_t count_vowels(char * str);
Ты в принципе знаешь, что строку она не меняет, просто её автор решил, что "const ненужно". Поэтому тебе надо просто получить переменную без const в типе, что бы "обойти" статическую типизацию:
C++
1
2
char const* str = "...";
count_vowels(const_cast<char *>(str));
Из за const_cast str не перестанет быть указателем на константу, и изменять то, на что он указывает (и, соответственно, то, на что указывает результат const_cast), черевато; ты просто как бы говоришь компилятору: "я знаю, что я делаю, не мешай".
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru