Преобразование типов данных при использовании математических операторов в C++ осуществляется в два вида: 3
- Неявное преобразование. 3 Происходит автоматически во время сравнения, присваивания или вычисления выражений. 3 Общий принцип: перейти от операнда меньшего типа к большему, чтобы не потерять точность вычислений. 1 Например, если любой арифметический оператор возвращает дробное число, если хотя бы один его аргумент является дробным — то есть, целое число будет неявно преобразовано в дробное. 3
- Явное преобразование. 13 Осуществляется программистом с помощью операторов staticcast, dynamiccast, constcast и reinterpretcast. 1
Если выражение содержит операнды различных встроенных типов и нет явных приведений, компилятор использует встроенные стандартные преобразования для преобразования одного из операндов таким образом, чтобы типы соответствовали. 5