1.1 C++ 简介
C语言代表的过程性语言、在C语言基础上添加的类代表面向对象语言、C++模板支持的泛型编程。
1.2 C++简史
1.2.1 C语言
传统使用汇编语言控制硬件,针对不同计算机处理器,使用不同的汇编语言重新编写程序,因此开发了同时具有低级语言的效率、硬件访问能力以及高级语言的通用性、可移植性的C语言。
1.2.2 C语言编程原理
程序 = 数据(程序使用和处理的信息) + 算法 (程序使用的方法)
C语言特点:1. 结构化编程(for循环、while循环、do while循环 、if else)
2. 自顶向下的设计(将大程序分解成小型、便于管理的任务,如果任务仍然过大,则继续分解)
1.2.3 面向对象编程
OOP强调数据,试图让语言满足问题的要求。
其理念是设计与问题本质特性相对应的数据格式。
类是一种规范,描述这种新型数据格式。
对象是根据这种规范构造的特定数据结构。
OOP程序设计方法首先设计类。 从低级组织(如类)到高级组织(如程序)的处理过程叫做自下而上的编程。
OOP将数据和方法合并为类定义(封装?)
多态可以为运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。
继承能够使用旧类派生出新类。
1.2.4 C++和泛型编程
编写一种通用的代码,这种代码可以处理不同的数据类型,而不需要为每种数据类型都编写单独的代码。
泛型编程的主要工具是模板。C++提供两种类型模板:函数模板和类模板。
1.2.5 C++起源
C++是C的超集
OOP提供高级抽象 C提供低级硬件访问
1.3 可移植性和标准
在不修改代码的情况下,使用不同平台的C++编译器进行编译,编译后的程序能良好运行,则该程序可移植。
可移植性的两个障碍:1. 硬件 硬件特定程序不可移植 2. 语言上的差异
标准: ISO/IEC 14882:1998 即C++98
ISO/IEC 14882:2003 即C++03
ISO/IEC 14882:2011 即C++11
1.3.1 C++的发展
1.3.2 本书遵循的C++标准
1.4 程序创建的技巧
源代码(文本编辑器编写程序)
--> 编译源代码(将源代码翻译为主机使用的语言,翻译后为目标代码)
--> 将目标代码和其他代码链接起来 (此时文件为可执行代码)
1.4.1 创建源代码文件
有些C++实现提供了IDE,有些只能处理编译和链接。
C++扩展名取决于C++实现。
1.4.2 编译和链接
1. UNIX编译和链接:
CC spiffy.C
生成 spiffy.o 文件,然后编译器将目标代码文件传递给系统链接程序,生成 a.out 可执行文件
2. Linux编译和链接: 常见编译器g++
g++ spiffy.cxx
生成 a.out 可执行文件
3.Windows命令行编译器: Cygwin 和 MinGW 包含编译器GNU C++
g++ great.cpp
生成 a.exe 可执行文件
4.Windows编译器
常见Microsoft Visual C++
首先需要确定创建的程序类型:比如Windows应用程序、MFC Windows应用程序、动态链接库、Active X控件、DOS或字符模式的可执行文件、静态库或控制台应用程序等。
创建好项目后,需要编译和链接。IDE提供如Complie、Build、Make、Build All、Link、Execute、Run、Debug。
5.Mac上的C++
开发框架Xcode,自带两个编译器(g++和clang)