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

Не понятно с const_cast - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отключения/включения alt+enter http://www.cyberforum.ru/cpp-beginners/thread954511.html
Привет, как программно отключить и включить виндовской хот-кей alt+enter ?
C++ односвязные списки С++ Дана последовательность символов s1 , s2 , . . . , sn ( n >= 2 и заранее неизвестно). Получить те символы, принадлежащие последовательности, которые входят в нее по одному разу. заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread954493.html
C++ Локальное копирование библиотек
Приветствую народ. Столкнулся я вот с такой проблемой. Предположим, что есть три проекта, два .exe-шника и одни является статической библиотекой. Библиотека используется в обоих проектах. А .exe-шники собираются в две отдельные папки и будут использоваться на различных компьютерах. Так вот, суть проблемы в том, что библиотека находится в конкретной папке . Как настроить студию, что бы при...
Ошибка C++
В общем задали мне сделать программу , и когда мне нужно вбить вместо х=0,12 а=0,01 выпригивает вот это, помогите . Заранее спасибо!!! Вот само задание http://s2.micp.ru/mX41e.jpg #include "stdafx.h" #include<iostream> #include<math.h> #include<conio.h> using namespace std;
C++ Что делать, если значение сегодняшнего дня(месяца) меньше значения дня(месяца) введных пользователем? http://www.cyberforum.ru/cpp-beginners/thread954478.html
#include <iostream> #include <ctime> using namespace std; int main() { time_t t = time(NULL); // äëÿ âû÷èñëåíèÿ ñåãîäíÿøíåãî äíÿ, ìåñÿöà è ãîäà. tm *t1; t1 = localtime(&t);
C++ Динамический массив выдаёт ошибку Вообщем там прикреплён файл, там вся прога т.к. код сюда писать объёмно. СЛожного по иддее ничего, учусь работать с динамичекскими массивами, вроде всё норм, компилирует, и результат выдаёт, но после этого какая-то ошибка наподобии обращения к несуществующему элементу массива.... подробнее

Показать сообщение отдельно
Убежденный
Системный программист
Эксперт С++
15242 / 6874 / 1088
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
14.09.2013, 20:59     Не понятно с const_cast
MarVaL, нельзя изменять константный объект.

Вот выдержки из стандарта (С++03):
5.2.11

7. [Note:Depending on the type of the object, a write operation through
the pointer, lvalue or pointer to data member resulting from a const_cast
that casts away a const-qualifier may produce undefined behavior (7.1.5.1).]



7.1.5.1

4. Except that any class member declared mutable(7.1.1) can be modified,
any attempt to modify aconst object during its lifetime (3.8) results
in undefined behavior.
11-ая строка (*ip = 0) - это неопределенное поведение.
Программа с таким же успехом могла бы показать, что по адресу
лежит 0, или 42, или еще что-нибудь. Или вылететь с ошибкой.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru