重要摘录:
1.抽象数据类型(abstract data type,简写ADT)
2.编程思想处理办法:
divide and conquer:处理一个问题,先想办法将其分成一个一个更容易解决的小问题,直到每个问题都可以解决为止,实际编写程序的时候可以采用注释标明某个程序块是处理哪一个问题
stepwise refinement:处理一个问题,先可以将这个问题的大概流程编写完成,实现其基本功能,然后再考虑其过程中应该细化的处理环节,比如范围判断,返回值的处理,异常的处理等等
3.认清函数原型(function prototype)的概念:返回类型、函数名、参数表的合称
4.预处理指令< >和" "的区别:
< >:标准头文件,查找时从预定义目录开始
" ":用户提供的头文件,查找时从当前文件目录开始
PS:在使用< >时,往往遇到xxxx.h的情形,表示该头文件是c语言中定义的,它往往对应一个名字为cxxxx的C++头文件,一般情况下可以替代使用,但需要注意的是,在使用名为cxxxx的头文件时,该文件中的所有名字是定义在命名空间std中的,而使用c语言定义的头文件xxxx.h则可以直接使用其定义的名称,但该做法可能造成命名冲突
5.条件预处理指令:
#ifndef, #define, #endif作用是防止一个头文件重复编译,机制原理是:只要不存在两个必须包含的头文件要检查一个同名的预处理器常量这一情形
#ifdef 指示符常被用来判断一个预处理器常量是否已被定义,以便有条件地包含程序代码。
PS:编译程序时,可以使用特定预处理器常量的名字,配合#ifdef来使用
C++程序编译器自动定义预处理器__cplusplus;标准c程序为__STDC__
__LINE__:记录文件已经被编译的行数
__FILE__:包含正在被编译的文件的名字
例子:
if ( element_count == 0 )
cerr << "Error: " << __FILE__
<< " : line " << __LINE__
<< "element_count must be non-zero./n";
__TIME__:包含当前被编译文件的编译时间,格式为:hh:mm:ss
__DATE__:包含当前被编译文件的编译日期,格式为:month dd yyyy
要点备忘:
读书心得: