C++是实现软件的基本手段。学习C++之后,我们还要学习数据结构、设计模式、学习面向对象分析与设计。
C++演变过程
Year | C++ Standard | Informal name |
2020 | ISO/IEC 14882:2020 | C++20 |
2017 | ISO/IEC 14882:2017 | C++17, C++1z |
2014 | ISO/IEC 14882:2014 | C++14, C++1y |
2011 | ISO/IEC 14882:2011 | C++11, C++0x |
C++11标准之前的C++被称为“Classic C++”,即经典C++。C++11标准之后的C++被称为“Modern C++”,即现代C++。 | ||
2003 | ISO/IEC 14882:2003 | C++03 |
1998 | ISO/IEC 14882:1998 | C++98 |
C++的编程范式
所谓编程范式,通俗来讲,就是规范编程的一系列思想、方法以及程序设计语言构造块所构成的一种模式。
C++支持多种编程范式:结构化、过程性、面向对象(使开发和维护变得更简单)、泛型(能够处理多种数据)、函数式(非FP语言有副作用,c++11后才支持)等
C++开发工具
Editor | 编辑器 | 代码编辑器主要用于用来编写和查看程序源代码。通常这种编辑器有语法加亮功能。 |
Compiler | 编译器 | 编译器,是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。 |
Linker | 链接器 | 是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。 |
Debugger | 调试器 | 调试器是指一种用于调试其它程序的计算机程序及工具。能够让代码在指令组模拟器(ISS)中可以检查运行状况以及选择性地运行,以便排错、调试。 |
interpreter | 解释器 | 解释器是一种计算机程序,能够把高级编程语言一行一行解释运行。解释器像是一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它不会一次把整个程序翻译出来,而是每翻译一行程序就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。 |
IDE | 集成开发环境 | Integrated Developing Environment通常包括编辑器、自动构建工具、通常还包括调试器。 |
尽量使用最新版的开发工具,新版工具提供更友好的提示信息,新版工具提供更便捷的操作。 |
C++程序的编译流程
编译时,先由预处理器对指令(#include、#define、#ifdef,#ifndef,#else,#elif,#endif等)进行预处理,在内存中输出翻译单元(就是将include等在源文件上替换了以后产生的临时文件),比如说·#define m 5,那么在该阶段会将程序中的m全部替换成5。然后,编译器接受临时文件,将其编译成包含机器语言指令的目标文件(.obj)。接下去就是链接过程(Linking...),连接器将目标文件和你用到的相关库文件一起链接形成main.exe。
注意:在编译过程中头文件不参与编译,预编译时进行各种替换以后,头文件就完成了其光荣使命,不再具有任何作用
C++中常见错误
Syntax Error (语法错误) 有时也称为“ 编译错误” | 违反了编程语言的语句形式或使用规则,一般由编译器检查指出。 例如:遗漏标点符号、错用关键字、分支/循环语句结构缺失等。 |
Runtime Error(运行时错误) | 程序运行时,遇到一个无法执行的操作,一般编译器无法检查指出。 |
Logic Error(逻辑错误) | 程序的运行结果与预期的正确结果不一致,编译器无法检查指出。 |