Google C++ Style

看fox翻译的中文 Google C++ Style 随手记录下

1.头文件
#define
命名格式:<Project>_<Path>_<File>_H_

尽量不要用头文件,可以用前置声明的情况
class Foo
Foo*  Foo&
可以将函数参数和返回值类型声明为Foo
静态数据成员(定义在类定义之外)

复杂的内联可以定义到-inl.h头文件中,然后#include就可以

函数参数顺序  const的输入参数  输出参数

#include的顺序  C库 C++库 其它的库 自己项目的库

2.作用域
匿名空间违反了C++的唯一定义原则(ODR:one definition rule)

不要使用using namespace 但是在方法或者类中可以使用using
using ::Foo::bar
别名namespace fbz = ::foo::bar::baz

嵌套类缺点:任何使用到这个嵌套类的指针都必须包含外围类的声明
不要将嵌套类定义为公有,除非他们是接口的一部分

static限定函数作用域

静态变量都必须使用原生数据类型(POD:Plain old data)

3.类
构造函数的职责,做一些无意义的初始化操作, 有意义的操作可以集中放到一个函数里面

不要用编译器默认创建的默认构造函数,自己写一个。因为编译器产生的很糟糕, 如果定义的类继承自现有
类, 而且又没有增加新的成员变量,则不需要为新类定义默认构造函数

对于单个参数的构造函数要使用C++关键字explicit

// 禁止使用拷贝构造函数和 operator= 赋值操作的宏
// 应该类的 private: 中使用

#define DISALLOW_COPY_AND_ASSIGN(TypeName) /
            TypeName(const TypeName&); /
            void operator=(const TypeName&)

大多数情况下不要提供拷贝构造函数和复制操作,如果需要提供必须在头文件中说明并合理定义
STL容器的元素要求可拷贝,但是大部分情况应该给STL传递指针

结构体和类:结构体完全是被动对象应该只包含数据。对于仿函数和特性(traits)可以不用class而是struct

数据成员在任何情况下都必须是私有的

多重继承使用的情况少之又少,当所有父类除了第一个外都是接口类的时候使用多重继承

重载了&运算符的类不能被前置声明

尽量不要重载运算符,可以定义相关功能的函数入Equal()  CopyFrom(), 不要为了再STL中作为键值使用而重载,
可以通过反函数类型来实现

编写简短函数:函数太长,试着去分割他

4.GOOGLE技巧

5.其它的C++特性
输入参数是const引用或者值参

如果想重载一个函数,考虑让函数名带参数信息  而不是重载参数

不考虑返回值的情况下++i 比 i++效率要高,所以一般建议使用++i

尽量不要是用宏:
1.不要在头文件中定义宏
2.在马上使用时才#define,使用后立即#undef
3.不要对已存在的宏使用#undef
4.不要试图使用展开后会导致C++构造不稳定的宏

使用Boost中被认可的部分

 

### 回答1: Google C++编程风格指南是Google推出的一份针对C++语言的编程规范和最佳实践指南。它为开发人员提供了一些关于代码结构、命名约定、注释规范、编程技巧等方面的指导,以帮助实现高效、可读性好、维护性强的C++代码。 该指南的目标是提高代码质量和风格的一致性,使团队中的所有开发人员都能遵循相同的编码规范。这样可以促进代码的可读性和可维护性,避免因不规范的代码导致的bug和错误。 Google C++编程风格指南主要围绕以下几个方面进行了详细的规范说明: 1.命名规范:指导了变量、函数、类、命名空间等的命名规则,使命名具有描述性和可读性。 2.代码布局:指导了代码缩进、换行等格式规范,使代码结构清晰、易于阅读。 3.注释规范:指导了注释的写法和内容,使注释可以更好地解释代码的意图和逻辑。 4.错误处理:指导了如何处理错误和异常情况,以及如何做好错误处理的文档。 5.性能优化:指导了一些C++编程的性能优化技巧,使代码在性能上更高效。 除此之外,该指南还包含了一些关于C++标准库、代码组织和文件组织等方面的规范建议,以帮助开发人员更好地编写高质量的C++代码。 总之,Google C++编程风格指南是一份很有价值的编程规范文档,它不仅可以提高团队协作中代码的质量和一致性,也可以提升开发人员编写C++代码的水平和技巧。 ### 回答2: 谷歌C语言风格指南是由谷歌公司提供的一套编码规范,旨在帮助开发人员编写更加规范、可维护和可扩展的C语言代码。这个风格指南可以作为参考,帮助开发人员遵循一些统一的编码规范。 该风格指南是一个PDF文档,可以通过在谷歌搜索中输入"google c style guide pdf"来获取。在搜索结果中可能会找到来自谷歌官方或其他信任来源的链接,点击链接即可下载该PDF文件。 该指南涵盖了一系列主题,包括命名规则、注释风格、缩进和排版、函数和类的设计、错误处理、变量和常量的使用等等。通过遵循这些指南,开发人员可以编写出更规范和易读的代码,提高代码的可重用性和可维护性,减少出错的可能性。 需要注意的是,谷歌C语言风格指南并没有硬性要求每个开发人员都必须遵守,而是提供了一些最佳实践和建议。开发团队或个人可以根据自身需求和偏好进行适当的调整。 总之,谷歌C语言风格指南是一个有价值的资源,可以帮助开发人员编写更加规范和高效的C语言代码。 ### 回答3: 首先,"Google C++ Style Guide" 是一份Google为了统一团队内C++代码编写风格而发布的指南。这个指南非常详细,并覆盖了各种C++编码规范和最佳实践。 这个指南的PDF版本可以通过在Google搜索中输入"google c++ style guide pdf"来找到并下载。用户可以通过点击搜索结果中的链接,进入相关页面,并选择下载相应的PDF版本。 在这个指南中,可以学到很多关于C++编码规范的信息,包括命名规范、注释规范、代码风格、文件和目录结构等等。该指南中的规范是Google工程师们多年编码经验的总结,值得借鉴和学习。 使用这个指南可以帮助开发人员遵循一致的编码风格,从而提高代码的可读性和可维护性。而且,该指南还可以帮助团队在代码审查过程中更好地相互沟通,从而提高团队合作效率。 总之,通过查找并下载"Google C++ Style Guide"的PDF版本,开发人员可以学习并应用其中的C++编码规范和最佳实践,提高代码质量和团队协作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值