第1章 预备知识
说明
看《C++ Primer Plus》时整理的学习笔记,部分内容完全摘抄自《C++ Primer Plus》(第6版)中文版,Stephen Prata 著,张海龙 袁国忠译,人民邮电出版社。只做学习记录用途。
1.1 c++简介
c++ 融合了3种不同的编程方式:
- C 语言代表的过程性语言;
- C++ 在 C 语言基础上添加的类代表的面向对象语言;
- C++ 模板支持的泛型编程。
1.2 c++简史
20世纪70年代早期,贝尔实验室的 Dennis Ritchie 在旧语言的基础上开发了 C 语言,将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合在了一起。C 语言具有结构化编程方法的特性(如for
循环、while
循环、do while
循环、if else
语句等)、遵循自顶向下的设计原则(将大型程序分解为多个小型程序,任务模块化)。
20世纪80年代,同在贝尔实验室的 Bjarne Stroustrup 在 C 语言的基础上开发出了 C++ 语言。C++ 融合了 OOP(Object Oriented Programming)、泛型编程和传统的过程性方法;实际应用时不一定遵循自顶向下的设计原则,更多的是使用自下向上,从低级组织(如类)到高级组织(如程序)的编程方法。OOP 强调的是编程的数据方面,泛型编程强调的是独立于特定数据类型,这些都有助于模块化和创建可重用代码。
1.3 可移植性和标准
程序可移植性存在两个方面的障碍:一是硬件、二是语言上的差异(编程语言也存在方言)。第一个障碍很多情况下是无法避免的,因此与特定硬件相关的程序一般是不可移植的;针对第二个障碍,可以通过制定一个通用的标准来进行制约。
美国国家标准局(American National Standards Institude, ANSI)在1990年设立了一个委员会(ANSI X3J16),专门负责制定C++标准。国际标准化组织(ISO)很快也加入了这个行列,创建了ANSI/ISO,致力于制定C++标准。
1998年,C++ 标准委员会发布了第一个国际标准 ISO/IEC 14882:1998,该标准常被称为 C++98。其后几年,委员会针对第一版中的诸多问题进行修订、减少多义性后,于2003年发布了 C++ 标准第二版 ISO/IEC 14882:2003,常被称为 C++03。由于 C++03没有改变语言特性,因此一般使用 C++98 表示 C++98/C++03。2011年,新的 C++ 标准 C++11 面世(ISO/IEC 14882:2011),新增了众多特性,例如正则表达式、标准线程库、auto
关键字、更好的 union
支持等。
1.4 程序创建的技巧
编写以及执行 C++ 程序的大体流程如下:
- 使用文本编辑器编写程序(源代码);
- 使用编译器翻译源代码,将源代码翻译为机器语言,生成目标代码文件;
- 将目标代码与其他代码链接起来,例如所用库函数的目标代码以及一些标准的启动代码,生成可执行代码。
有些C++实现提供了集成开发环境(Integrated Development Environments, IDE),例如 Microsoft Visual C++,使得开发人员能够在主程序中管理程序开发的所有步骤;IDE提供了用于创建源代码文件的文本编辑器、用于生成可执行文件的编译器和链接器以及其他资源,如项目管理和调试功能,这些任务也可以在命令行环境中通过调用合适的工具来完成。常见实现的源代码文件的扩展名如下表:
C++实现 | 源代码文件的扩展名 |
---|---|
UNIX | C、cc、cxx、c |
GNU C++ | C、cc、cxx、cpp、c++ |
Microsoft Visual C++ | cc、cxx、cpp |
本文作者:木三百川
本文链接:https://www.cnblogs.com/young520/p/16487861.html
版权声明:本文系博主原创文章,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请附上出处链接。遵循 署名-非商业性使用-相同方式共享 4.0 国际版 (CC BY-NC-SA 4.0) 版权协议。