Преобразование типов

Преобразование типа в языке C++ в целом аналогично такому преобразованию в других языках. Но есть несколько тонкостей, которые выделяют C++ в этом плане.

Как известно, есть 2 вида преобразования типа – неявное и явное. Первый вариант означает, что компилятор при считывании кода изменяет тип самостоятельно. Для примера

Программа сама меняет тип i на float и суммирует 2 числа. Тип меняется только для этой функции.

Второй вариант подразумевает, что преобразование идет с помощью специальной функции. Ниже приведен пример подобного

Так же преобразования возможны с помощью функций atoi, atof, atol, из массива символов в числа разных форматов.

Для обратного перевода из числа в строку явно заданных функций в стандартных библиотеках нет. Но можно воспользоваться функцией

которая напоминает функцию printf, но печатает не на экран, а в строку buffer, или встроенными функциями компилятора.

Для примера, в компиляторе Borland перевод из int  в  char* имеет вид  char* itoa(int value, char* string, int radix). Параметры этой функции: value – исходное число, string – возвращаемая строка, radix – система счисления (для десятичной системы счисления radix = 10).

Все виды преобразований не слишком надежны и зачастую дают неточности, так что использование их в коде сопряжено с трудностями. Рекомендуется делать проверки результатов преобразований и задавать граничные значения.

Приведем пример программы, преобразующей целое число в строку, строку в вещественное число и вещественное число в строку.

 

Не нашли ответ? Не беда, спросите в комментариях.

Ваш e-mail не будет опубликован. Обязательные поля помечены *