1 认识C++
C++是一种通用程序设计语言,是一个C,支持数据抽象,支持面向对象的程序设计,支持通用程序设计。
2 程序设计模式
较好的程序设计风格,应具备以下特征:
-
所有特征必须清晰而优美地集成在语言之中。
必须能组合使用这些特征去得到一种解决方案,如果无法组合,则要求额外的独立特征。
应尽可能减少谬论的和“专用的”特征
任何特征的实现都不应该给未使用这种特征的程序强加明显的额外开销。
用户只需要了解自己在写程序时所明确使用的那个语言子集。
3 过程式程序设计
“确定你需要哪些过程;采用你能找到最好的算法”
(1)变量和算术
每个名字、每个表达式都有一个类型,以确定可以对他们执行的操作。
(2)检测循环
switch while
(3)指针和数组
4 模块程序设计
“确定你需要哪些模块;将程序分为一些模块,使数据隐藏于模块之中”
(1)分别编译 可以用于将程序组织为一组部分独立的片段,最大限度地模块化,通过语言特征逻辑地表示模块化,而后通过能最有效地分别编译的一组文件,物理地利用这种模块化机制。
(2)异常处理 但一个程序被设计为一集模块以后,对于错误的处理必须在这些模块的基础之上考虑。采用异常处理机制能使对错误的处理更加规范。
5 数据抽象
(1)定义类型的模块
(2)用户定义类型
“确定你需要哪些类型;为每个类型提供完整的一组操作”
(3)具体类型
“可设计许多用户定义类型去满足各种各样的需要”
class Stack {
char* v;
int top;
int max_size;
public:
class Underflow{};
class Overflow{};
class Bad_size{};
Stack{int s};
~Stack{};
void push{char c};
char pop{};
};
(4)抽象类型
(5)虚函数
6 面向对象的程序设计
(1)具体类型的问题
一个具体类型像通过模块定义的一个“假模型”一样,定义了一类黑盒子,一旦定义好了后,就无法再和程序的其他部分进行实际的交互。
(2)类层次结构 继承类
“确定你需要哪些类;为每个类提供完整的一组操作;利用继承去明确地表示共性”类层次结构和抽象类互为补充。
7 通用程序设计
“确定你需要哪些算法;将他们参数化,使他们能够对各种各样适当的类型和数据结构工作”
(1)容器
一个能保存某种类型的一集元素的类,一般被称为一个容器类。
(2)通用型算法