Раздел: Статьи / С/С++ / Ошибки программирования /
Автоматическое преобразование типов
Все способы изучить С++
Начинающие программисты даже не догадываются о том, какой огромный пласт в этой области скрыт от их глаз, и чего многие из новичков не увидят никогда, потому что это тёмная сторона программирования - чистый исходный код системного уровня… Подробнее... |
В Паскале при бинарных арифметических операциях результат будет целого типа, если ОБА операнда являются выражениями целого типа. Если хотя бы один из операндов является выражением вещественного типа, то и результат будет иметь вещественный тип.
В С/С++ этих ограничений опять же нет. С одной стороны - это даёт больше свободы программисту. Но увеличение свободы всегда влечёт за собой увеличение ответственности. Это означает, что программист сам должен позаботиться о возможных последствиях автоматического преобразования типов.
Пример, показанный ниже, будет работать.
#include#include using namespace std; int main(int argc, char *argv[]) { int x = 30; float z = 20.9; x = x + z; //Нет ошибки!!! cout << "30 + 20,9 = " << x << endl; system("PAUSE"); return EXIT_SUCCESS; }
Ошибки во время компиляции не возникнет (в отличие от Паскаля). Однако в результате х у нас будет равен 50, а не 50,9, как это должно быть.
В Паскале подобный код вызвал бы ошибку компиляции, и программа не была бы создана. Но зато вы и не получили бы проблемы с точностью!
В С/С++ ошибки компиляции не произойдёт, но ответственность за результат целиком ложится на программиста.
Некоторые компиляторы С++ (в том числе и компилятор, используемый Dev-C++) выдадут в таком случае предупреждение, чтобы обратить внимание программиста на возможные проблемы. Однако программа будет откомпилирована без ошибок.
Что считать достоинством, а что недостатком? У каждого свои предпочтения.
Отчасти по этим причинам язык С/С++ считается более сложным. Программировать на этом языке лучше профессионалу.
Однако это не значит, что программист на Паскале не может быть профессионалом. Как я уже неоднократно говорил: не бывает плохих языков программирования - бывают плохие программисты.
Подписаться на канал в YouTube
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |