Обсуждение:Приведение типа
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
ссылка на type coercion как на синоним некорректна - type coercion является аналогом понятия implicit cast, часто для языков с подразумеваемыми типами.
не надо путать type conversion и type inference.
это точно. Самое смешное - что статья вывод типов ссылалась на эту!!! 62.231.4.134 06:53, 4 марта 2009 (UTC)
А что это в строке "y = static_cast<signed short>(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)