Обсуждение:Приведение типа

Последнее сообщение: 8 лет назад от 31.13.144.4 в теме «Проблемы с интервики»

ссылка на 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)Ответить