C++ Primer Plus学习笔记之预备知识
前言
个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。
一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为了完成自己这一直以来的心愿,准备认真学习《C++ Primer Plus》。
为了提高学习效率,在学习的过程中将通过发布学习笔记的方式,持续记录自己学习C++的过程。
一、C++简介
C++的强大来自于“四继承两添加”:
- “四继承”是指C++继承了C语言“高效”、“简洁”、“快速”、“可移植”的四大特性
- “两添加”是指在C++在C语言的基础上添加了“面向对象编程(OOP)”、“泛型编程”两大支持
C++融合了3中不同的编程方式: - C语言代表的过程性语言
- C++在C语言基础上添加的类代表的面相对象语言
- C++模板支持的泛型(独立于类型)编程
提示:学习C++时需要掌握C语言的知识(《C++ Primer Plus》会讲C语言基础知识)
二、C++简史
同C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代设计并实现了C++。
Stroustrup加入了OOP特性和对C的泛型编程支持,但没有对C的组件作很大改动。因此C++是C语言的超集,这意味着任何有效的C程序都是有效的C++程序。C++的名称来自于C语言中的递增运算符++,这也表明C++是C的扩充版本。
计算机语言要处理两个概念——数据和算法。其中数据是程序使用和处理的信息,而算法是程序使用的方法。C语言作为过程性语言,强调的是编程的算法方面,C++语言因其面向对象的特性,强调的是数据。
OOP编程并不仅仅是将数据和方法合并为类定义。例如:
- 可以方便地重用和修改现有的、经过仔细测试的代码(这也是C++的优点之一)
- 信息隐藏保护数据
- 多态可以实现在不同的编程上下文,拥有不同的运算符和函数定义
- 继承让您能够使用旧类派生出新类
泛型编程与OOP目标一致:使重用代码和抽象通用概念的技术更简单。
OOP与泛型的不同: - OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。
- OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务(如对数据排序和合并链表)的工具。
三、C++标准
- 1990年,美国国家标准局(American National Standards Insitute,ANSI)成立了“ANSI X3J16”委员会,专门负责制定 C++标准(ANSI制定了C语言标准)。
- 1991年, 国际标准化组织(ISO)成立“ISO-WG-21”委员会(C 标准小组被称为“WG14”)同ANSI成立联合组织ANSI/ISO,共同致力于C++标准工作。
- 1998 年,获得ISO、IEC、ANSI批准的第一个国际标准ISO/IEC 14882:1998出台。该标准常被称为C++98,它不仅描述了已有的C++特性,还对该语言进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL)。
- 2003年,发布了C++标准第二版(ISO/IEC 14882:2003),简称ISO C++03标准,由于C++03没有改变语言特性,因此我们使用C++98表示C++98/C++2003。
- 2011年,发布了C++标准第三版(ISO/IEC 14882:2011),简称ISO C++ 11标准,与C++98一样,C++11也新增了众多特性。
四、程序创建的技巧
编写的C++程序运行步骤:
- 源代码。使用文本编辑器编写程序,并将其保存到文件中,这就是程序的源代码。
- 源代码=》编译器=》目标代码。通过编译器将源代码翻译为主机使用的内部语言——机器语言。包含了翻译后的程序文件就是程序的目标代码(object code)。
- 目标代码、启动代码和库代码=》链接程序=》可执行代码。将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。包含该最终产品的文件被称为可执行代码。
创建源代码文件,可以通过集成开发环境(integrated development enviroments,IDE)或者任何文本编辑器。给源文件命名时,需要使用正确的后缀,将文件标识为C++文件。例如:test.cpp,其中test
是文件名,.
是句点,cpp
是扩展名。
C++源文件的扩展名如下表:
C++实现 | 源代码文件的扩展名 |
---|---|
UNIX | C、cc、cxx、c |
GUN C++ | C、cc、cxx、cpp、c++ |
Digital Mars | cxx、cpp |
Borland C++ | cpp |
Watcom | cpp |
Visual Studio C++ | cc、cxx、cpp |
Freestyle CodeWarrior | cc、cxx、cpp、c++、cp |
C++源代码通过不同编译器生成不同平台的可执行文件。Linux和Windows常见的编译器是g++。
博客园-本文作者(好先生FX http://www.cnblogs.com/hxsfx)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。