Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 69

Приведение (cast) — это операция, в результате которой компилятор временно изменяет тип используемых данных.

Приведение типов выглядит следующим образом:

float х = (float)10 * 5.5;

Встретив такую запись, компилятор будет рассматривать число 10 как имеющее плавающую точку (второе число автоматически интерпретируется как float, т.к. оно содержит дробную часть). Посмотрите на следующий фраг­мент:

В этом случае вы получите сообщение об ошибке, поскольку типы пере­даваемых параметров не соответствуют указанным в объявлении функции. Фактически, компилятор сообщит, что он не может определить, какую из версий rnultiplyO нужно вызвать. Ту же ошибку вызовет использование кода наподобие следующего:

int result = multiply(10, 10); // 10 - это float, int или short?

Здесь компилятор не может разобраться, какой тип приписать числовым константам — float, int или short. Из подобных ситуаций существует два возможных выхода. Прежде всего, можно отказаться от использования кон­стант при вызове функций. Если вы хотите перемножить целые числа, объ­явите две переменные типа int и передайте их функции:

int х = 10; int у = 10;

int result = multiply(х, у);

Теперь неоднозначности нет, поскольку х и у имеют тип int. В простых ситуациях это, возможно, будет избыточным решением. Тогда вы можете использовать приведение типов, чтобы сообщить компилятору необходимые сведения:

int result = multiply((int)10, (int)10);

Теперь компилятор знает, что нужно интерпретировать числовые кон­станты как имеющие тип int. Приведение используется также для временного изменения типа некоторой переменной. Давайте вернемся назад к первому примеру в этом разделе и изменим тип одного из аргументов, чтобы избежать несоответствия:

int х = 5; float у = 10.5;

Web-дизайн (с) 2010 - 2017 All rights reserved