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

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

Язык C++, как и его предшественник C, свободнее, чем многие другие языки программирования, обращается с выражениями, включающими в себя различ- ные типы данных. В качестве примера рассмотрим программу MIXED:

// mixed.cpp

// использование смешанных выражений #include <iostream> using namespace std;

int main() {

int count = 7;

float avgWeight = 155.5F;

double totalWeight = count *avgWeight;

cout <<"Вес равен " << totalWeight << endl;

return 0;

}

Здесь переменная типа int умножается на переменную типа float, а результат присваивается переменной типа double. Компиляция программы происходит без ошибок, поскольку компиляторы допускают возможность перемножения (и вы- полнения других арифметических операций) с операндами разных типов.

Не все языки поддерживают смешанные выражения, и некоторые из них фиксируют ошибки при попытке применить арифметические операции к дан- ным разных типов. Такой подход предполагает, что подобные действия вызваны ошибкой программиста, и призван «сигнализировать» ему об этом. C и C++ предполагают, что смешивание типов данных произошло сознательно и являет- ся задумкой программиста, и поэтому не мешают ему реализовывать свои идеи. Подобный подход отчасти объясняет столь значительную популярность языков С и C++. Эти языки дают программисту большую свободу. Разумеется, подоб- ная либеральность увеличивает вероятность допущения ошибок.

 

49