读google c++ 编程规范 中的一点小总结

来源:互联网 发布:mac玩美服 编辑:程序博客网 时间:2024/04/29 12:48

Google的东西还是要关注一下的咯

 

一、使用static_cast<>()等c++风格而不要使用C风格类型转换

1) static_cast :和 C 风格转换相似可做值的强制转换,或指针的父类到子类的明确的向 上
转换;
2) const_cast :移除 const 属性;

3) reinterpret_cast :指针类型和整型或其他指针间不安全的相互转换,仅在你对所做一
切了然于心时使用;
4) dynamic_cast :除测试外不要使用,除单元测试外,如果你需要在运行时确定类型信
息,说明设计有缺陷(参考 RTTI RTTI RTTI RTTI )。

 

二、我们强烈建议你在任何可以使用的情况下都要使用 const 。(没注意过。。。)

 

三、使用宏时要谨慎,尽量以内联函数、枚举和常量代替之。

 

四、只使用 Boost 中被认可的库。

      为了向阅读和维护代码的人员提供更好的可读性,我们只允许使用 Boost 特性的一
熟子集,当前,这些库包括:

1) Compressed Pair : boost/compressed_pair.hpp ;
2) Pointer Container : boost/ptr_container 不包括 ptr_array.hpp 和序列化
( serialization )。

 

五、类型命名每个单词以大写字母开头,不包含下划线: MyExcitingClass 、 MyExcitingEnum 。

 

 

 

书中的总结:

 1. 对于智能指针,安全第一、方便第二,尽可能局部化( scoped_ptr scoped_ptr scoped_ptr scoped_ptr );
2. 引用形参加上 const const const const ,否则使用指针形参;
 3. 函数重载的使用要清晰、易读;

 4. 鉴于容易误用,禁止使用缺省函数参数(值得商榷);
 5. 禁止使用变长数组;
6. 合理使用友元;
 7. 为了方便代码管理,禁止使用异常(值得商榷);
 8. 禁止使用 RTTI RTTI RTTI RTTI ,否则重新设计代码吧;
 9. 使用 C++ C++ C++ C++ 风格的类型转换,除单元测试外不要使用 dynamic_cast dynamic_cast dynamic_cast dynamic_cast ;
 10. 使用流还 printf printf printf printf + + + + read/write read/write read/write read/write , it it it it is is is is a a a a problem problem problem problem ;
 11. 能用前置自增 / / / / 减不用后置自增 / / / / 减;
12. const const const const 能用则用,提倡 const const const const 在前;
13. 使用确定大小的整型,除位组外不要使用无符号型;

14. 格式化输出及结构对齐时,注意 32323232 位和 64646464 位的系统差异;
 15. 除字符串化、连接外尽量避免使用宏;
16. 整数用 0 0 0 0 ,实数用 0.0 0.0 0.0 0.0 ,指针用 NULL NULL NULL NULL ,字符(串)用 '/0' '/0' '/0' '/0' ;
17. 用 sizeof(varname) sizeof(varname) sizeof(varname) sizeof(varname) 代替 sizeof(type) sizeof(type) sizeof(type) sizeof(type) ;
18. 只使用 Boost Boost Boost Boost 中被认可的库。

 

 

 

 

 

原创粉丝点击