? ? ? ? C++在C语言基础上添加了面向对象编程和泛型编程的支持,C++继承了C语言高效、简洁、快速和可移植性的传统。
1.C++简介
? ? ? ? C++融合了3种不同的编程方式:C语言代表的面向过程编程,在C基础上添加的类代表的面向对象编程,C++模板支持的泛型编程。
? ? ? ? 这里说一下自顶向下的程序设计过程,就是把大型的任务分解成一个个小任务,它鼓励程序员开发程序单元函数来表示各个任务模块。
2.面向对象编程
? ? ? ? 面向对象编程强调的主要是数据,而不是过程。在C++中,类是一种规范,类描述了一种新型的数据格式,对象是根据类的规范构造的特定的数据结构。
? ? ? ? 例如,类可以用来描述公司管理人员的基本特征(姓名、职位、工资、特长等),而对象就代表特定的管理人员。类规定可以使用哪些数据表示对象以及可以对这些数据执行哪些操作。
? ? ? ? 例如,假设正在开发一个能够绘制矩形的计算机绘图程序,则可以定义一个描述矩形的类。定义的数据部分应包含顶点的位置、长和宽、四条边的颜色和样式、矩形内部的填充颜色和图案等;定义的操作部分应该包含移动、改变大小、旋转、改变颜色和图案、将矩形复制到另一个位置上等操作。使用这个程序绘制矩形时,它将根据类定义创建一个对象。该对象保存了描述矩形的所有数据值,因此可以使用类方法修改矩形。如果绘制两个矩形,程序将创建两个对象,每个矩形对应一个对象。
? ? ? ? 面向对象编程首先设计类,它们准确表示了程序要处理的东西。例如,绘图程序可能定义表示矩形、直线、圆、画刷、画笔的类。类定义描述了对每个类可以执行的操作,如移动圆或者旋转直线。
? ? ? ? 面向对象编程不仅仅是将数据和方法合并为类定义。面向对象编程还有利于创建可以重用的代码,这样就可以少写很多代码,减少大量的工作。信息隐藏可以保护数据,避免不小心把数据修改掉。多态特性可以给运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。继承可以使用旧类派生出新类。设计有用可靠的类是一项艰巨的任务,面向对象可以使程序员在编程中轻松的使用已有的类。厂商提供了大量有用的类库,开发者可以方便的重用和修改现有的、经过仔细测试的代码。
3.C++和泛型编程
????????泛型编程也使重用代码和抽象通用概念的技术更简单。但是OOP强调的是编程的数据方面,而泛型编程是针对特定的数据类型的。泛型编程提供了执行常见任务的工具(如对数据排序或合并链表)。C++有很多种数据类型——整数、小数、字符、字符串、用户定义数据类型、由多种类型组成的复合结构。当我们需要对不同的数据类型进行排序的时候,通常情况下需要对每种类型都创建一个排序函数。泛型编程需要对语言进行扩展,以便可以只编写一个泛型函数,并将其用于各种实际类型。C++模板提供可以完成这种任务的机制。
4.如何运行C++程序
? ? ? ? 1.用文本编辑器编写程序,并将其保存到文件中,这个文件就是程序的源代码。
? ? ? ? 2.编译源代码。将源代码翻译为主机使用的内部语言——机器语言。包含了翻译后的程序的文件就是程序的目标代码。
? ? ? ? 3.将目标代码和其它代码链接起来。C++程序通常使用库,C++库包含一系列计算机例程的目标代码,这些函数可以执行比如在屏幕上显示信息或计算平方根等任务。链接就是把目标代码和使用函数的目标代码以及一些标准的启动代码组合起来,生成程序的运行阶段版本。包含最终产品的文件叫做可执行代码。
? ? ? ? 这边把自己认为C++ primer plus里面比较重要的部分整理成笔记,作为C++初学者,还有很长一段路要走。坚持下去,相信会有所收获。加油,皮卡丘!!!
|