Главная->Інформатика та програмування->Содержание->Преобразования основных типов в основные типы

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 8) онлайн

Преобразования основных типов в основные типы

Когда мы пишем строку типа intvar =floatvar;

где intvar — переменная типа int, a floatvar — переменная типа float, то мы пред- полагаем, что компилятор вызовет специальную функцию для преобразования значения переменной floatvar, которая имеет формат числа с плавающей точкой, в формат целого числа, чтобы мы могли присвоить его переменной intvar. Конеч- но, существует множество таких преобразований: из float в double, из char во float и т. д. Каждое такое преобразование имеет свою процедуру, встроенную в компи- лятор, которая вызывается в зависимости от типов переменных, стоящих с обеих сторон знака равно. Мы говорим, что преобразования неявные, так как они не от- ражены в листинге.

Иногда мы хотим принудительно заставить компилятор преобразовать один тип в другой. Для этого используется оператор cast. Например, для преобразо- вания float в int мы можем записать следующее выражение:

intvar = static_cast<int>( floatvar );

Использование этого оператора предоставляет нам явное преобразование: очевидно, что в листинге функция static_cast<int>() предназначена для преобра- зования float в int. Однако такое явное преобразование использует те же встро- енные процедуры, что и неявное.

 

17