C++ Primer Plus(第六版)教材学习
如有错误,感谢赐教~
第1章 预备知识
~~~~~~
机器语言:机器能直接识别的程序语言或指令代码(2进制代码),勿需经过翻译,每一个操作码在计算机内部都有相应的电路来完成。属于最低级的语言,计算机直接执行,速度快,资源占用少,但是编程费劲;
汇编语言:直接操作硬件,依赖计算机内部的机器语言(01010101类似这种),属于低级语言,但是汇编语言编出来的程序也是针对特定计算机的硬件,可以移植性差;
C++:持3种不同的编程方式,即面向过程编程(C的特性)、对象对象编程(简称OOP,class类的特性)、泛型编程(有模板);属于高级语言,致力于解决问题,不针对特定的硬件,C++程序可以通过编译器,将特殊程序的高级语言翻译成特定计算机的内部语言,可以通过在每个平台使用不同的编译器在不同的平台使用同一个高级语言的程序;
~~~~~~
C++的面向对象编程(OOP)
用于大型程序,OOP强调的是数据,非过程性编程,OOP程序设计方法首先设计类,他们准确地表示了程序要处理的东西,OOP编程并不仅仅是将数据和方法合并成类定义。还可助于创建可重用的代码,减少开发工作;可以做到信息隐藏,保护其不被外部访问;多态能够为运算符和函数创建多个定义,你需要编程的上下文来确定使用哪个定义;继承能够使用旧类以便派生出新类;
~~~~~~
C++的泛型编程(generic programming)
它与OOP的目标相同,即使重用代码和抽象通用的技术更简单。不过OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。泛型编程提供了执行常见任务的工具,术语泛型指的是创建独立于类型的代码;
~~~~~~
C++的标准规范
C++ 11是ISO C++标准在2011年被批准的。先前的标准通常为C++98或C++03;二者的区别非常小且非常具备技术性,以至于他们的区别不需要被用户关注。
C++ 14 (标准第4版),2014年8月18日发布。正式名称为ISO/IEC 14882:2014 [22] 。
C++14是C++11的增量更新,主要是支持普通函数的返回类型推演,泛型 lambda,扩展的 lambda 捕获,对 constexpr 函数限制的修订,constexpr变量模板化等 [23] 。
C++17 (标准第5版)是继 C++14 之后,C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称。而就在昨日,ISO C++ 委员会正式发布了 C++ 17 标准,官方正式名称为 ISO/IEC 14882:2017。
对于正在进行中的 C++ 20,预计在两年内( 2019 年夏天)完成所有功能。
更多 ISO/IEC 14882:2017 内容可参考:https://www.iso.org/standard/68564.html
~~~~~~
程序创建的技巧,如何将创建的C++程序,运行起来,具体步骤取决计算机以及使用的C++编译器,但大体如下:
1.使用文本编辑器编写程序,并保存,此文件为程序的源代码;
2.编译源代码,即运行编译器将源代码翻译成你主机使用的内部的机器语言,翻译后,翻译后的程序文件就是就是程序的目标代码(object code)
3.将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段的版本,包含最终产品的文件被称为可执行代码。
~~~~~~
创建源程序
可以使用IDE(integrated development environments),给源程序命名时,使用正确的后缀,这将告诉别人这是C++源代码,还可以将这种信息告知编译器。使用什么扩展名,取决于C++实现,例如通过Visual Studio 2019(IDE)实现时,C++源程序的后缀为cpp;