Code Complete读书笔记03

2012-05-03

Chapter13

1、把指针操作限制在子程序或类里面

     例:对于一个链表,通过NextLink(),InsertLink(),DeleteLink()等子程序操作指针,即集中控制数据

2、按正确的顺序删除指针(释放当前指针之前,确保已经有指向下一个元素的指针)

3、删除或释放指针后将其设为空值(避免迷途指针)

4、向子程序传递对象时→按引用传递而非按值(避免复制该对象,提高效率)

     当希望按值传递时(比如,不想误修改传入对象)→按const引用

5、只有万不得已时才使用全局数据

     考虑以下替换方案

     1)先把变量设为局部的,仅当需要时才设为全局的

     2)区分全局变量和类变量→模块化

     3)使用访问器子程序

6、创建一种命名规则来突出全局变量,且为全局变量创建一份注释良好的清单

Chapter14

Chapter15

1、把正常情况的处理放在if后面而不是else后面

     即if(file.exist())

                        do……

        else             cerr<<”File don’t exist”;

2、让if后面跟一个有意义的句子,避免诸如

     if(sometest)

              ;

     else do…

     替代方案

     if(!sometest)

              do……

3、在写if→else if→else if……→else串的时候

     1,利用布尔函数简化复杂的检测

     2,把最常见的情况放最前面

     3,确保所有情况都考虑到

     例如,if(IsNumber(c))    …..

                else if(IsLetter(c)) ……

                else if(IsBlank(c)) ……

                else ……

4、case语句使用事项

     1,简化每种情况对应的操作

              例如 case 1: statement1;

                                          statement2;

                                          statementn;

              变为 case 1:   func();

              func()

              {

                        statement1……n;

              }

     2,把default子句只用于检查真正的默认情况,不要把最后一种情况写为default

              利用default子句检测错误

              如case 1:         statement…

                 case 2:        statement…

                 default:      print(Error);

posted on 2012-05-04 15:03  TheBest  阅读(159)  评论(0编辑  收藏  举报

导航