Форум программистов, компьютерный форум 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 не подойдет).... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.08.2013, 21:50     const_cast для чего и как функционирует
const_cast это средство лечения от кривых библиотек (const-incorrect, выражаясь более толерантно). То есть данные могут не изменяться, но const просто не указан. Абстрактный пример в вакууме:
C++
1
2
3
4
5
6
void log(char *msg) { printf("%s: %s\n", __LINE__, msg); }
 
int main() {
    char[] m = "message";
    log(const_cast<char *>(m);
}
Важно отличать, варианты корректного применения и варианты, приводящие к UB.
C++
1
2
3
int i = 10;
const int *ptr = &i;
*(const_cast<int *>(ptr)) = 11;
ptr константен, но указывает на int, который константным не является, следовательно данный случай корректен. Если же применить const_cast к указателю, который указывает на на самом деле константные данные, то уже UB:
C++
1
2
3
const int i = 10;
const int *ptr = &i;
*(const_cast<int *>(ptr)) = 11;
 
Текущее время: 13:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru