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

const_cast - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с битами http://www.cyberforum.ru/cpp-beginners/thread309832.html
три раза писал но все равно не получается((( 1-)Ввести последовательность из 8 символов. Сравнить 5-й и 6-й биты каждого символа. Если они не равны, то сделать их равными младшему биту, иначе - старшему. Вывести исходную последовательность, ее восьмеричные коды; преобразованную последовательность и ее восьмеричные коды.
C++ Не могу стартануть "Hello" Здравствуйте. В чем может быть проблема, пишу обычный Привет мир а компилятор ругается на ошибку. #include <iostream> using namespace std; int main() { cout<<"Privet Tipa.\n"; return 0; http://www.cyberforum.ru/cpp-beginners/thread309801.html
Прямая на плоскости задаётся уравнением ax+by+c=0, где a и b одновременно не равны нулю. C++
Народ! Срочно выручайте: Прямая на плоскости задаётся уравнением ax+by+c=0, где a и b одновременно не равны нулю. Будем рассматривать только прямые , для которых коэффициенты a,b,c-целые числа. Пусть f-файл содержащий коэффициенты нескольких прямых(не менее 3-х). Переписать из файла f в файл g коэффициенты тех прямых, которые: а) параллельны первой из прямых, заданной в файле f; б) указаны в...
Линий в opengl'e C++
Написал код который выводит дисплей на экран и на нем одну линию, ошибки не одной , но почему-то не выводится линия =( Вопрос , почему? Вот код: #include "stdafx.h" #include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> #pragma comment(lib, "opengl32.lib") #pragma comment(lib, "glu32.lib") #pragma comment(lib, "glut32.lib") int _tmain(int argc, _TCHAR* argv)
C++ Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна http://www.cyberforum.ru/cpp-beginners/thread309793.html
осталась последняя задача по Си, от неё зависит зачёт. Условия такие: найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна.
C++ Проверьте прогу на ошибки Задание Создать файл <<tranz>>, который содержит параметры для 15 типов транзисторов, которые имеются на складе. Параметры каждого транзистора являются: название (КТ315Г, КТ814В, КТ302, КТ853А, КТ361А), мощность, максимальный рабочий ток, количество. Данные должны вводиться с клавиатуры. Создать процедуру для возможности просмотра пользователем созданного файла данных. Вывести на экран параметры... подробнее

Показать сообщение отдельно
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
01.06.2011, 09:06     const_cast
День добрый. Пытаюсь вот разобраться как работает данный оператор. Имеется пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
int main()
{
    const int x = 8;
    
    int * ptr = const_cast<int*>(&x);
    
    std::cout << "Before changing: \n";
    std::cout << "x = " << x << '\n';
    std::cout << "*ptr = " << *ptr << '\n';
    std::cout << "&x = " << &x << '\n';
    std::cout << "ptr = " << ptr << '\n';
    
    *ptr = 9;
    
    std::cout << "\nAfter changing: \n";
    std::cout << "x = " << x << '\n';
    std::cout << "*ptr = " << *ptr << '\n'; // выводит 9
    std::cout << "&x = " << &x << '\n'; // выводит 8
    std::cout << "ptr = " << ptr << '\n';
    
    return 0;
}
После присваивания *ptr = 9, указатель продолжает указывать на x, но почему тогда при выводе *ptr и x получаются разные значения. Т.е. const x каким был таким и остался (8, и это вроде логично), но указатель на него при разыменовании даёт другое число (9). Где эта девятка собственно хранится?

Буду благодарен советам и подсказкам))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru