Меню

Главная
Случайная статья
Настройки
Обсуждение:Приведение типа
Материал из https://ru.wikipedia.org

Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями.

ссылка на type coercion как на синоним некорректна - type coercion является аналогом понятия implicit cast, часто для языков с подразумеваемыми типами.

не надо путать type conversion и type inference.
   это точно. Самое смешное - что статья вывод типов ссылалась на эту!!!  62.231.4.134 06:53, 4 марта 2009 (UTC)[ответить]


А что это в строке "y = static_cast(65534);" подчёркивание исчезает в неизвестном направлении? 109.184.60.101 16:33, 5 января 2010 (UTC)[ответить]

Содержание

Ошибка в коде

int X; int Y = 200; char C = 30; X = (int)C * 10 + Y;//переменная С приведена к типу int.

Если бы в этом примере не было выполнено явное приведение типов, то компилятор предположил бы, что выражение С * 10 + У переменной Х было бы присвоено значение 640, а не корректное 3200. В результате приведения типа переменная С распознается компилятором как 16-ти разрядная, и описанной выше ошибки не возникает.

Наверное, умножать С надо на 100, а не на 10.

Вообще пример неправильный!

Написал

int X;
int Y = 200;
char C = 30;
X = (int)C * 100 + Y;
int X2 = C * 100 + Y;




Откомпилировал. В итоге (ОБА) X и X2 равны 3200. Не пишите пожалуйста код, не проверив его.


хотел бы увидеть пример кода с const_cast, в котором производится установка модификатора const или volatile. т.к. больше нигде я не нашел таких примеров.)))) Msangel 23:19, 18 мая 2010 (UTC)[ответить]

плохое решение

/* Функция экспортируется DLL'ем и возвращает какую-то строку
в виде char*. Проблема в том, что std::string::c_str() возвращает
const char*.*/


void __declspec(dllexport) WINAPI SomeDllFunction(PChar& rMessage) {
   rMessage = const_cast<char*>(s.c_str());


}



никогда нельзя возвращать буфер строки где-то-там в чужую область памяти. здесь надо применить копирование

полиморфизм

"Без приведения типов невозможна реализация полиморфизма в ООП" - явный ОРИСС, как максимум сугубо присущий языку С++ с его уникальной псевдо-объектной системой типов. Требуется либо реально серьёзный АИ, либо сужение на контекст С++ и расширение понятия. Обычно полиморфизм подтипов (это и есть "полиморфизм в ООП") не требует приведения типов. Arachnelis 21:00, 23 ноября 2014 (UTC)[ответить]
  • "Неявное приведение выполняется" мало в каких языках - ярче всего этим отмечаются Си и С++, для остальных языков оно вообще считается дурным тоном. Arachnelis 11:00, 28 ноября 2014 (UTC)[ответить]


Проблемы с интервики

На странице https://www.wikidata.org/wiki/Q1333515 видно, что у этой статьи есть версии на нескольких языках. Почему-то на боковой панели "Языки" не отображается ни одной ссылки на проекты на других языках (однако, например, из статьи в англовики можно перейти сюда). То же самое с точностью до наоборот в статье en:Assignment (computer science) - английская статья не ссылается на статьи на других языках (например, Присваивание), которые ссылаются на неё (там тоже отписался). В чём тут дело? 31.13.144.50 02:25, 3 июля 2015 (UTC)[ответить]
Проблема решилась очисткой кэша сервера для этой статьи. 31.13.144.4 14:36, 3 июля 2015 (UTC)[ответить]
Downgrade Counter