DirtyBorov Опубликовано 27 октября, 2016 Поделиться Опубликовано 27 октября, 2016 Сегодня один товарищ сломал мне мозг вот таким кодом: void __fastcall TForm1::Button1Click(TObject *Sender) { int x = 2; Label1->Caption = x; } И компилятор это схавал! Как?! Может мне кто нибудь подсказать почему целое, без преобразования присвоилось в лейбу? код проверялся на XE10.1 Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 27 октября, 2016 Поделиться Опубликовано 27 октября, 2016 все просто: не явное преобразование Цитата Ссылка на комментарий
0 DirtyBorov Опубликовано 27 октября, 2016 Автор Поделиться Опубликовано 27 октября, 2016 1 час назад, wamaco сказал: все просто: не явное преобразование Это я уже понял, немного поигравшись с разными вариантами. void __fastcall TForm1::Button1Click(TObject *Sender) { int x = 3.2; Label1->Caption = x; // выведет 3 } Просто я уже очень давно не писал на С++. Не пойму когда и для чего это сделали. В чем профит? Ведь С++ строго типизированый язык. На мой взгляд это только добавит неявных ошибок. Или я не прав? Цитата Ссылка на комментарий
0 Kitty Опубликовано 27 октября, 2016 Поделиться Опубликовано 27 октября, 2016 чтобы увидеть дробную часть: double x = 3.2 Равиль Зарипов (ZuBy) 1 Цитата Ссылка на комментарий
-1 DirtyBorov Опубликовано 27 октября, 2016 Автор Поделиться Опубликовано 27 октября, 2016 2 минуты назад, Kitty сказал: чтобы увидеть дробную часть: double x = 3.2 Да не ужели? Ни когда бы не догадался... я же всего то 20 лет программирую. Это сарказм. еще могу показать пару вариантов. Например: Label1->Caption = 15 / 3; или так double x = 15, y = 3; Label1->Caption = x / y; Улавливаете ход мысли? Цитата Ссылка на комментарий
0 POV Опубликовано 27 октября, 2016 Поделиться Опубликовано 27 октября, 2016 С чего бы это он строго типизирован?! ВОт Паскаль типизирован. А тут вокруг сплошь неявные преобрзования. Хавает даже конструкции int x = 5; Caption = x + "килограмм"; Жаль, работает неправильно )) Цитата Ссылка на комментарий
Вопрос
DirtyBorov
Сегодня один товарищ сломал мне мозг вот таким кодом:
И компилятор это схавал! Как?! Может мне кто нибудь подсказать почему целое, без преобразования присвоилось в лейбу?
код проверялся на XE10.1
Ссылка на комментарий
5 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.