Това са два прости примера на C++, написани на Dev-cpp C++ 5.4.2:
float a, b, c;
if (a | b & a | c)
printf("x = %.2f\tF = %.0f\n", x, F);
else
printf("x = %.2f\tF = %.2f\n", x, F);
и този код:
float a, b, c;
if (a || b && a || c)
printf("x = %.2f\tF = %.0f\n", x, F);
else
printf("x = %.2f\tF = %.2f\n", x, F);
Може ли някой да ми каже разликата между ||
> |
и &
> &&
. Вторият код работи, но първият не. И компилаторът дава съобщение за грешка:
[Грешка] невалидни операнди от типове 'float' и 'float' към двоичен 'operator&'.
binary32
,binary64
и т.н. и набор от функции за конвертиране. Те са семантично различни в c++, но човек не го вижда, защото не са синтактично различни от целите числа. Като каза това, някои умни хора тръгнаха по този начин, напр. ° С#. Това не е очевидно дизайнерско решение IMO. - person luk32   schedule 28.12.2015