Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774

Как работает static_cast?

13.08.2015, 11:47. Показов 4291. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    
    cout<<sizeof(a)<<endl;//4
    static_cast<char>(a);
    cout<<sizeof(a)<<endl;//4???
    
    
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2015, 11:47
Ответы с готовыми решениями:

Каким образом работает static_cast в данном выражении
#include&lt;iostream&gt; using namespace std; //////////////////////////////////////////////////// class INT { private: int...

Static_cast
Как узнать результат преобразования типа выражения? Например, почему тип bool преобразуется в ноли и единицы типа int? Где в стандарте...

Static_cast
Подскажи пожалуста return static_cast&lt;double&gt;(get_num())/get_den(); как это понимать, а то в книге написано, но не объяснено, а в...

30
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.08.2015, 14:06
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

Студворк — интернет-сервис помощи студентам
anti-k, пришли к пластическому хирургу Статику Кастовичу две подружки - Чар и Инт. И просят сделать нос char'ки такой же как у int'ки. В итоге, к носу Инт'ки никто даже не прикасается, её тип нос для хирурга просто как пример. А вот с Чар'кой поработали и теперь она тоже Инт.
2
13.08.2015, 14:07

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
и теперь она тоже Инт
Удлинили, в два раза?

0
13.08.2015, 14:10

Не по теме:

nmcf, да хрен их баб разберёт. Может удлинили, а может горбинку убрали.

0
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
13.08.2015, 14:13  [ТС]
gru74ik,
C++
1
2
3
int e=6;
char d=e;
cout<<sizeof(d);//1  В таком случае каст вообще не нужен? А каким образом меняется тип уже объявленной переменной?
0
2410 / 1948 / 764
Регистрация: 27.07.2012
Сообщений: 5,586
13.08.2015, 14:14
Цитата Сообщение от anti-k Посмотреть сообщение
А каким образом меняется тип уже объявленной переменной?
Никаким
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
13.08.2015, 14:21
Цитата Сообщение от anti-k Посмотреть сообщение
В таком случае каст вообще не нужен?
В таком случае происходит неявное преобразование типа. И как раз на такое преобразование компилятор может ответить предупреждением.
1
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
13.08.2015, 14:23  [ТС]
John Prick, ))) Вот тебе бабушка и Юръев день ))

Добавлено через 1 минуту
Kerry_Jr, А можно получить адрес этой временной переменной?
0
2410 / 1948 / 764
Регистрация: 27.07.2012
Сообщений: 5,586
13.08.2015, 14:25
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

anti-k, C++ - язык со статической типизицией. Это значит, что раз написав int a, ты навсегда сделал а типа int.

C++
1
2
int a = 1000;
char b = static_cast<char>(a);
Здесь а не стала char'ом, b не стала int'ом. Здесь как бы указание "что было бы, если бы a было char'ом".
2
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.08.2015, 14:26
anti-k, в твоём примере подружки пошли не к пластическому хирургу, а напились пьяными и в тёмном переулке одной дали по башке, а когда она очнулась то даже не заметила, как от удара по голове стала такой же глупой, как и её товарка, которой по башке не перепало.
2
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
13.08.2015, 14:32  [ТС]
gru74ik, Рукоплещу )
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
13.08.2015, 14:44
Цитата Сообщение от anti-k Посмотреть сообщение
временной переменной?
нет. Как Вы это сделаете? Да и зачем, собственно?
Приведу пример. У меня есть функция, например
C++
1
2
3
4
5
6
int func (int a, int b)
{
    int c = a + b;
    
    return c;
}
Вам эту функцию я поставляю в качестве файла заголовка и библиотеки к нему. Т.е. доступа к исходному коду определения ф-ции у Вас нет. Вопрос сможете ли Вы достучаться извне до адреса переменной с? Ответ нет. Да и толку в этом не будет, даже если сможете, т.к. после выхода из функции по адресу переменной с будет лежать неизвестно что.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2015, 14:44

static_cast
Почему не работает static_cast&lt;float&gt;(n/m);? Как сделать чтобы он все же перевел это к типу float? #include &lt;iostream&gt; using...

static_cast
В чем ошибка. ругается на &lt; и ( в строке newpound=static_cast&lt;int&gt;(newpound); #include &lt;iostream.h&gt; #include &lt;conio.h&gt; int...

Оператор static_cast
int N; cout &lt;&lt; &quot;введите размер маccива: &quot;; cin &gt;&gt; N; vector&lt;double&gt; matrix (N); for (int i = 0; i &lt; N; i++) //заполнение...

Использование static_cast
Здравствуйте! Подскажите, почему такая конструкция не компилируется. int main() { int nWord = 4; char temp =...

static_cast, исключение
Привет. dynamic_cast&lt;&gt; может выбросить исключение, при невозможности преобразования типа при работе с ссылками. старое приведение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru