Turbo C++ 7 和 Dev C++ 在语法方面有什么区别?

What are the differences between Turbo C++ 7 and Dev C++ in terms of syntax?

在学校里,我使用 Turbo C++ 7 学习了 C++。当我进入大学时,我发现它已经过时了。我想知道在 GCC 或 Dev C++ 编译器中的 C++ 14 中实现的更改。

示例:conio.h 在 C++98、C++14 等中不存在。取而代之的是 using namespace std; .

根据您所说的(以及对 conio.h 的引用),最有可能的结论是 您没有学过 C++(使用 Turbo C++ 7)。你被教导 "C with some C++ features sprinkled over"。有些人模棱两可地称之为 "C/C++"。这是大多数在好的高中学到的东西,它可以通过编码竞赛为您提供很好的服务。

所以请按照以下步骤操作:

  1. 承认您不懂 C++(或者 "what you know is not real C++")
  2. 复习 Bjarne Stroustrup 的介绍性“A Tour of C++”,他是 C++ 的创造者,并填补 "what you know" 和 "modern C++"
  3. 了解一下各种 C++ 标准版本的语言特性之间的差异(从 google-ing "C++14 features" 等开始)
  4. 选择一本好的 C++ 书籍,比如 "Effective C++"(或其他人,多问问!)并在大学头几年的课程中通读它

提示: 介于 3 和 4 之间,当您意识到要花很多年才能掌握 C++ 时,请停下来问问自己 "is C++ the right language for the kinds of programs I want to write?". 如果答案是 "no",请选择其他选项。如果答案是"yes",那么停下来走一些弯路:绕到汇编程序的"underworlds"和"real plain C"(你在Linux的内核中找到的类型) ,并绕道 "alternative universes" D、Rust 和 Go,以了解 C++ 的问题以及为什么它是世界上大多数错误和安全漏洞的罪魁祸首(提示: 有很多错误!),以及如何减轻其反特征。

哦,还有...不要绝望 :)

请注意 <conio.h> 不存在于任何编程语言标准中。您也可以检查 C11 draft standard on n1570. You could check with the C++14 标准(并且您可以检查所有早期的 C 或 C++ 标准)。 FWIW,我从 1970 年代开始编码,从未使用过 <conio.h>

我正在使用一个很好的、非常符合标准的 C11 和 C+14 实现,它没有 <conio.h>。我的电脑运行 Linux,我的编译器是 GCC 7.

<conio.h> header is specific to MicroSoft systems. AFAIK no standard mentions it. You won't find <conio.h> on POSIX (and all non-MicroSoft) systems (you should prefer ncurses为POSIX,是常用的自由软件库)。即使是 1990 年代的 Unix 工作站也没有
<conio.h> 而当前的非 Microsoft 系统没有它们。

TurboC++ 是一个过时的编译器。它编译了一个过时的、从未标准化的 C++ 子集的变体。 今天不要使用 TurboC++

顺便说一句,DevC++(或Code::Blocks)是不是编译器,但是IDE秒。它们是 运行 一些(可配置的)编译器,通常是 GCC.

我强烈建议使用一些最近 免费软件 C++ 编译器,特别是GCCClang/LLVM。两者都非常符合标准(有一些 微小的 记录偏差)。

不要忘记启用所有警告和调试信息(大多数编译器默认情况下不启用它们)。使用 GCC 使用 g++ -Wall -Wextra -g.

编译

我什至强烈建议在您的计算机上安装一些 Linux distribution,因为它们对开发人员非常友好,并且由您可以研究其源代码的免费软件制成。

如果你想学习C++,一定要至少学习和使用C++11(最好是C++14,和C++11很接近)。在 2017 年,任何旧标准都不值得学习(除非您的雇主强迫您学习)。

当然,只有一个C++编译器是不够的(顺便说一句,几乎所有的都是命令行程序)。您还需要其他工具,特别是链接器、加载器和汇编器(例如 binutils); you need some source code editor (my preference is GNU emacs but you could use vim or gedit or many others) - some of them call themselves IDEs - and you want to use a debugger (such as GNU gdb), a version control system (I recommend git), a build automation tool (like GNU make)。

大多数 Linux 分发包都非常好。

一旦你读好了introduction to C++ programming, take the habit to look on cppreference. Be aware that C++ is a very complex programming language (and few people know it very well, I don't claim to know it well and probably never met any person knowing it very well), so prepare yourself to spend several years learning it. An important notion is that of undefined behavior

顺便说一句,TurboC 接受的语言与 C++14 标准之间最重要的区别不是句法,而是 semantics.