在学校,我使用Turbo C ++ 7教授C ++。当我进入大学时,我发现它已经过时了。我想知道在GCC或Dev C ++编译器中用C ++ 14实现的更改。
示例: conio.h 在C ++ 98,C ++ 14等中不存在,而是using namespace std;
。
答案 0 :(得分:4)
请注意,<conio.h>
在任何编程语言标准中都不存在。您可以查看C11上的n1570草案标准。您也可以使用C++14标准进行检查(您可以查看所有早期的C或C ++标准)。 FWIW,我从20世纪70年代开始编码,从未使用<conio.h>
我正在使用一个很好的,非常标准的符合C11和C + 14的实现,它没有<conio.h>
。我的电脑运行Linux,我的编译器是GCC 7。
<conio.h>
header特定于MicroSoft系统。 AFAIK没有标准提到它。你不会在POSIX(和所有非MicroSoft)系统上找到<conio.h>
(对于POSIX,你应该更喜欢ncurses,它是一个常用的免费软件库)。甚至90年代的Unix工作站也没有
<conio.h>
和当前的非Microsoft系统没有它们。
TurboC++是一个过时的编译器。它编译了C ++子集的过时的,从未标准化的变体。 今天不要使用TurboC ++ !
BTW,DevC++(或Code::Blocks)不是编译器,但是IDE s。他们正在运行一些(可配置的)编译器,通常是GCC。
我强烈建议您使用一些最近的 free software C ++编译器,尤其是GCC或Clang/LLVM。两者都是非常标准的符合(有一些微小记录的偏差)。
不要忘记启用所有警告和调试信息(大多数编译器默认情况下不启用它们)。使用g++ -Wall -Wextra -g
编译GCC。
我甚至强烈建议在您的计算机上安装一些Linux distribution,因为它们非常适合开发人员,并且由可以学习源代码的免费软件组成。
如果你想学习C ++,一定要学习并使用至少C++11(最好是C ++ 14,这非常接近C ++ 11)。 2017年,任何较旧的标准都不值得学习(除非你的雇主强迫你)。
当然,仅靠C ++编译器是不够的(BTW几乎所有这些都是命令行程序)。您还需要其他工具,尤其是链接器和加载器和汇编器(例如binutils);你需要一些source code editor(我的偏好是GNU emacs但您可以使用vim或gedit或许多其他人 - 其中一些人称自己为IDE s - 并且您想使用debugger(例如GNU gdb
),版本控制系统(我推荐git),build automation工具(例如GNU make)。
大多数Linux发行版都包装得非常好。
读完好introduction to C++ programming后,请养成查看cppreference的习惯。请注意 C ++是一种非常复杂的编程语言(很少有人知道它,我并不认为它很清楚并且可能从未见过任何知道它的人非常好),所以准备好花几年时间学习它。一个重要的概念是undefined behavior。
BTW,TurboC接受的语言与C ++ 14标准之间最重要的区别不是语法,而是semantics。答案 1 :(得分:1)
根据你所说的(以及对conio.h
的引用),最可能的结论是你没有被教授C ++ (使用Turbo C ++ 7)。你被教导“C带有一些C ++特性”。有些含糊地称之为“C / C ++”。这是大多数高中时学到的,通过编码比赛可以很好地为你服务。
请按照以下步骤操作:
提示:在3到4之间的某个地方,当你意识到掌握C ++需要数年和数年时间时,停下来问自己“C ++是正确的语言我想写的各种程序?“。如果答案是”不“,请选择别的东西。如果答案是“是”,那么暂停并走一些弯路:一对夫妇迂回于汇编程序的“黑社会”和“真正的简单C”(你在Linux内核中找到的那种类型),还有一些人走近“替代宇宙” “D,Rust和Go,了解 C ++出了什么问题以及它为什么要对世界上大多数的漏洞和安全漏洞负责(提示:有很多错误!),以及如何减轻其反对-features。
哦,...不要绝望:)。