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