c,,编程规范101条规则,准则最佳实践

c,,编程规范101条规则,准则最佳实践

ID:19265768

大小:31.17 KB

页数:27页

时间:2018-09-30

c,,编程规范101条规则,准则最佳实践_第1页
c,,编程规范101条规则,准则最佳实践_第2页
c,,编程规范101条规则,准则最佳实践_第3页
c,,编程规范101条规则,准则最佳实践_第4页
c,,编程规范101条规则,准则最佳实践_第5页
资源描述:

《c,,编程规范101条规则,准则最佳实践》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、c,,编程规范101条规则,准则最佳实践  篇一:101条编程规范  101条规则  组织和策略问题  第0条不要拘泥于小节(又名:了解哪些东西不应该标准化)  第l条在高警告级别干净利落地进行编译  第2条使用自动构建系统  第3条使用版本控制系统  第4条在代码审查上投入  设计风格  第5条个实体应该只有个紧凑的职责  第6条正确、简单和清晰第  第7条编程中应知道何时和如何考虑可伸缩性  第8条不要进行不成熟的优化  第9条不要进行不成熟的劣化  第10条尽量减少全局和共享数据  第11条隐藏信息  第

2、12条懂得何时和如何进行并发性编程  第13条确保资源为对象所拥有。使用显式的RAII和智能指针  (RAII==Resourceacquisitionisinitialization)  编程风格  第14条宁要编译时和连接时错误,也不要运行时错误.  第15条积极使用const  第16条避免使用宏  第17条避免使用“魔数”  第18条尽可能局部地声明变量  第19条总是初始化变量  第20条避免函数过长,避免嵌套过深.  第21条避免跨编译单元的初始化依赖  第22条尽量减少定义性依赖。避免循环依赖  

3、第23条头文件应该自给自足  第24条总是编写内部群include保护符,决不要编写外部#include保护符函数与操作符  第25条正确地选择通过值、(智能)指针或者引用传递参数  第26条保持重载操作符的自然语义  第27条优先使用算术操作符和赋值操作符的标准形式  第28条优先使用++和的标准形式。优先调用前缀形式  第29条考虑重载以避免隐含类型转换  第30条避免重载&&、ll或,(逗号)  第3l条不要编写依赖于函数参数求值顺序的代码  类的设计与继承  第32条弄清所要编写的是哪种类  第33条用

4、小类代替巨类  第34条用组合代替继承  第35条避免从并非要设计成基类的类中继承  第36条优先提供抽象接口  第37条公用继承即可替换性。继承,不是为了重用,而是为了被重用  第38条实施安全的改写  第39条考虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的  第40条要避免提供隐式转换  第41条将数据成员设为私有的,无行为的聚集(C语言形式的struct)除外  第42条不要公开内部数据  第43条明智地使用Pimpl  第44条优先编写非成员非友元函数  第45条总是起提供new和delete 

5、 第46条如果提供类专门的new,应该提供所有标准形式(普通、就地和不抛出)构造、析构与复制  第47条以同样的顺序定义和初始化成员变量  第48条在构造函数中用初始化代替赋值  第49条避免在构造函数和析构函数中调用虚拟函数  第50条将基类析构函数设为公用且虚拟的,或者保护且非虚拟的  第51条析构函数、释放和交换绝对不能失败  第52条致地进行复制和销毁-  第53条显式地启用或者禁止复制  第54条避免切片。在基类中考虑用克隆代替复制  第55条使用赋值的标准形式  第56条只要可行,就提供不会失败的s

6、wap(而且要正确地提供)  名字空间与模块  第57条将类型及其非成员函数接口置于同名字空间中  第58条应该将类型和函数分别置于不同的名字空问中,除非有意想让它们一起工作  第59条不要在头文件中或者样include之前编写名字空间using  第60条要避免在不同的模块中分配和释放内存  第61条不要在头文件中定义具有链接的实体  第62条不要允许异常跨越模块边界传播  第63条在模块的接口中使用具有良好可移植性的类型  模板与泛型  第64条理智地结合静态多态性和动态多态性  第65条有意地进行显式自定

7、义  第66条不要特化函数模板  第67条不要无意地编写不通用的代码  错误处理与异常  第68条广泛地使用断言记录内部假设和不变式  第69条建立合理的错误处理策略,并严格遵守  第70条区别错误与非错误  第71条设计和编写错误安全代码  第72条优先使用异常报告错误  第73条通过值抛出,通过引用捕获  第74条正确地报告、处理和转换错误  第75条避免使用异常规范  STL:容器  第76条默认时使用vector。否则,选择其他合适的容器  第77条用vector和string代替数组  第78条使用v

8、ector(和strlng::c-str)与非C++API交换数据  第79条在容器中只存储值和智能指针  第80条用pusn—back代替其他扩展序列的方式  第8l条多用范围操作,少用单元素操作  第82条使用公认的惯用法真正地压缩容量,真正地删除元素STL:算法  第83条使用带检查的STL实现  第84条用算法调用代替手工编写的循环  第85条使用正确的STL查找算法  第86

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。