Каковы различия между Turbo C++ 7 и Dev C++ с точки зрения синтаксиса?

В школе меня учили C++ с использованием Turbo C++ 7 . Когда я поступил в колледж, я узнал, что он устарел. Я хотел бы знать об изменениях, которые были реализованы в C++ 14 в компиляторе GCC или Dev C++.

Пример: conio.h не существует в C++98, C++14 и т. Д. Вместо этого мы имеем using namespace std;,

2 ответа

Решение

Из того, что вы говорите (и ссылка на conio.h), наиболее вероятный вывод состоит в том, что вас не учили C++ (используя Turbo C++ 7). Вас учили "C с некоторыми функциями C++". Что некоторые двусмысленно называют "C/C++". Это то, чему большинство учится в хороших средних школах, и это может помочь вам в соревнованиях по программированию.

Так что следуйте этим шагам:

  1. принять, что вы не знаете C++ (или что "то, что вы знаете, не является настоящим C++")
  2. Пройдите вводный курс " Путешествие по C++" Бьярна Страуструпа, парня, который создал C++, и заполните пробелы между "тем, что вы знаете" и "современным C++".
  3. прочитайте немного о различиях между языковыми особенностями различных стандартных версий C++ (начните с google-ing "Функции C++14" и т. д.)
  4. выберите хорошую книгу по С ++, например, "Эффективный С ++" (или другие, спросите немного!) и пройдите ее вместе со своими курсами в первые несколько лет обучения в колледже.

Совет: Где-то между 3 и 4, когда вы поймете, что на освоение C++ у вас уйдут годы и годы, остановитесь и спросите себя: "Является ли C++ подходящим языком для программ, которые я хочу написать?". Если ответ "нет", выберите что-то еще. Если ответ "да", тогда сделайте паузу и возьмите несколько обходных путей: пару обходных путей к "подземным мирам" ассемблера и "настоящий простой C" (тип, который вы найдете в ядре Linux) и пару обходных путей к "альтернативным вселенным" "D, Rust and Go, чтобы понять, что не так с C++ и почему он ответственен за большинство ошибок в мире и бреши в безопасности (подсказка: много неправильного!), и как смягчить его анти-функции.

Ох, и... не отчаивайся:)

Заметить, что <conio.h> не существует ни в одном стандарте языка программирования. Вы можете проверить с проектом стандарта C11 на n1570. Вы также можете проверить со стандартом C++ 14 (и вы можете проверить со всеми более ранними стандартами C или C++). FWIW, я кодирую с 1970-х годов и никогда не использовал <conio.h>

Я использую хорошее, очень стандартное соответствие, реализацию C11 и C+14, и он не имеет <conio.h>, Мой компьютер работает под управлением Linux, а мой компилятор - GCC 7.

<conio.h> заголовок специфичен для систем MicroSoft. AFAIK нет стандарта упоминает об этом. Вы не найдете <conio.h> в системах POSIX (и всех, не относящихся к MicroSoft) (вы должны предпочесть ncurses для POSIX, это широко используемая библиотека бесплатного программного обеспечения). Даже рабочих станций Unix эпохи 90-х не было
<conio.h> и современные системы, не принадлежащие Microsoft, не имеют их.

TurboC++ является устаревшим компилятором. Он скомпилировал устаревший, никогда не стандартизированный вариант подмножества C++. Не используйте TurboC++ сегодня!

Кстати, DevC++ (или Code:: Blocks) не компиляторы, а IDE. Они работают с некоторым (настраиваемым) компилятором, часто GCC.

Я настоятельно рекомендую использовать недавно выпущенный компилятор C++ для свободного программного обеспечения, в частности GCC или Clang / LLVM. Оба они соответствуют стандарту (с небольшими документированными отклонениями).

Не забудьте включить все предупреждения и отладочную информацию (большинство компиляторов не включают их по умолчанию). С GCC компилировать с g++ -Wall -Wextra -g,

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

Если вы хотите изучать C++, обязательно изучите и используйте хотя бы C++ 11 (и предпочтительно C++14, что очень близко к C++11). Любой старый стандарт не стоит изучать (если ваш работодатель не заставляет вас) в 2017 году.

Конечно, одного компилятора C++ недостаточно (кстати, почти все они являются программами командной строки). Вам также понадобятся другие инструменты, в частности, компоновщики, загрузчики и ассемблеры (например, binutils); вам нужен редактор исходного кода (я предпочитаю GNU emacs, но вы можете использовать vim или gedit или многие другие) - некоторые из них называют себя IDE- и вы хотите использовать отладчик (такой как GNUgdb), система контроля версий (я рекомендую git), инструмент для автоматизации сборки (например, GNU make).

Большинство дистрибутивов Linux упаковывают все это очень хорошо.

Прочитав хорошее введение в программирование на C++, возьмите привычку взглянуть на http://en.cppreference.com/w/. Имейте в виду, что C++ является очень сложным языком программирования (и мало кто знает его очень хорошо, я не претендую на то, что знаю его хорошо и, вероятно, никогда не встречал никого, кто бы знал это очень хорошо), поэтому приготовьтесь потратить несколько лет на его изучение. Важным понятием является неопределенное поведение.

Кстати, наиболее важные различия между языком, принятым TurboC, и стандартом C++ 14 заключаются не в синтаксисе, а в семантике.

Другие вопросы по тегам