1、 文件的属性以及开始和结束注释标记
a) 在每一个文件的头部用注释填写:章节号:文件名,以及该文件所完成的功能。
b) 如何一个文件是头文件,则什么也不用做
c) 如果这个文件中的程序中不含main()(即,不含主程序的.cpp的文件),这必须与其他部分连接,所以,在注释行的文件名后添加:{O}
d) 如果,文件是主程序(含有main()函数),但是需要和其他部分连接,则有独立的//{L}开头的行,并在{L}后填写所要连接的文件名(不含主程序的.cpp文件的名字)
2、 圆括号,大括号缩排
a) 单行定义常用于内联函数
b) 函数以及类的缩排如下:
Fun(){
/*Body here */:
}
3、 标示符命名
a) 如果标示符是一个类:则第一个字母必须大写
b) 如果标示符是一个函数名或者变量名:则第一个字母必须小写
c) 剩余部分由一个或多个单词构成每个单词第一个字母必须大写
d) 编译时常量(const,#define),标示符的所有字母都必须大写
4、 头文件的包含顺序
C++编程思想里面倡导用“最特殊到最一般的”的顺序,即,首先为本地文件,接着为
自己的工具文件,最后,库文件。由于函数调用的顺序是按照头文件的包含顺序的来的。从而,使得用户的函数不被系统的以及第三方的库文件的函数所冲掉。可以,让用户程序员清晰的指导自己定义的接口是否和第三方或者系统的库函数所冲突。
另外,GoogleC++编程规范倡导的刚好相反:“从最一般到最特殊”,所以,能大量减少隐藏的头文件依赖。同时,在其中倡导应该首先包含首选头文件,即a.cpp文件中包含头文件时应该是首先包含a.h文件。
综上,C++编程思想的编程风格虽有缺点,但是好处还是很多。
5、 在头文件中包含警卫
总是在头文件中包含警卫,从而,避免单个.cpp文件期间一个头文件被多次包含。如下:
//IncludeGuard.h
#ifndef INCLUDEGUARD_H
#define INCLUDEGARD_H
//Body of header file here…
#endif //INCLUDEGARD_H
从中可以看出,警卫以头文件名为基础,将文件名的字母大写,然后用下划线代替’.’。
6、 使用名字空间
在头文件中,必须保证其中没有包含任何有“污染”的名字空间,即如果改变函数或者
类外面的名字空间,将导致包含刺头文件的所有文件的改变。所以,在C++中不允许在函数的声明外面有任何using声明,同时不允许在头文件中有全局的using声明。
7、 使用“前置条件”和后置条件
Require()和assure()都在require.h中,在“核心函数”开始之前,用检查前置条件来保证
“核心函数”执行所需要的条件都是否满足,而,核心函数执行完毕之后使用后置条件来检查核心函数是否已经正确执行,且返回正确的结果。本文为个人学习C++编程思想时个人心得体会,所以,难免有不严谨之处,甚至有可能是错误的理解。如发现错误,或者疑问。欢迎提出讨论,共同学习、进步。