![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
google c++
文章平均质量分 81
Richarll
这个作者很懒,什么都没留下…
展开
-
6. 命名约定
6. 命名约定¶<br />最重要的一致性规则是命名管理. 命名风格快速获知名字代表是什么东东: 类型? 变量? 函数? 常量? 宏 ... ? 甚至不需要去查找类型声明. 我们大脑中的模式匹配引擎可以非常可靠的处理这些命名规则.<br />命名规则具有一定随意性, 但相比按个人喜好命名, 一致性更重, 所以不管你怎么想, 规则总归是规则.6.1. 通用命名规则¶<br />Tip<br />函数命名, 变量命名, 文件命名应具备描述性; 不要过度缩写. 类型和变量应该是名词, 函数名可以用 “命令性” 动转载 2011-03-14 20:08:00 · 486 阅读 · 0 评论 -
9. 规则特例
9. 规则特例¶<br />前面说明的编程习惯基本都是强制性的. 但所有优秀的规则都允许例外, 这里就是探讨这些特例.9.1. 现有不合规范的代码¶<br />Tip<br />对于现有不符合既定编程风格的代码可以网开一面.<br />当你修改使用其他风格的代码时, 为了与代码原有风格保持一致可以不使用本指南约定. 如果不放心可以与代码原作者或现在的负责人员商讨, 记住, 一致性 包括原有的一致性.9.2. Windows 代码¶<br />Tip<br />Windows 程序员有自己的编程习惯, 主要源转载 2011-03-14 20:14:00 · 608 阅读 · 0 评论 -
8. 格式
8. 格式¶<br />代码风格和格式确实比较随意, 但一个项目中所有人遵循同一风格是非常容易的. 个体未必同意下述每一处格式规则, 但整个项目服从统一的编程风格是很重要的, 只有这样才能让所有人能很轻松的阅读和理解代码.<br />另外, 我们写了一个 emacs 配置文件 来帮助你正确的格式化代码.8.1. 行长度¶<br />Tip<br />每一行代码字符数不超过 80.<br />我们也认识到这条规则是有争议的, 但很多已有代码都已经遵照这一规则, 我们感觉一致性更重要.优点: 提倡该原则的人主张转载 2011-03-14 20:12:00 · 577 阅读 · 0 评论 -
7. 注释
7. 注释¶<br />注释虽然写起来很痛苦, 但对保证代码可读性至关重要. 下面的规则描述了如何注释以及在哪儿注释. 当然也要记住: 注释固然很重要, 但最好的代码本身应该是自文档化. 有意义的类型名和变量名, 要远胜过要用注释解释的含糊不清的名字.<br />你写的注释是给代码读者看的: 下一个需要理解你的代码的人. 慷慨些吧, 下一个人可能就是你!7.1. 注释风格¶<br />Tip<br />使用 // 或 /**/, 统一就好.<br />// 或 /**/ 都可以; 但 //更 常用. 要在如转载 2011-03-14 20:11:00 · 620 阅读 · 0 评论 -
5. 其他 C++ 特性
5. 其他 C++ 特性¶5.1. 引用参数¶<br />Tip<br />所以按引用传递的参数必须加上 const.定义: 在 C 语言中, 如果函数需要修改变量的值, 参数必须为指针, 如 intfoo(int*pval). 在 C++ 中, 函数还可以声明引用参数: intfoo(int&val). 优点: 定义引用参数防止出现 (*pval)++ 这样丑陋的代码. 像拷贝构造函数这样的应用也是必需的. 而且更明确, 不接受 NULL 指针. 缺点: 容易引起误解, 因为引用在语法上是值变量却拥有指针转载 2011-03-14 20:10:00 · 496 阅读 · 0 评论 -
4. 来自 Google 的奇技
4. 来自 Google 的奇技<br />Google 用了很多自己实现的技巧 / 工具使 C++ 代码更加健壮, 我们使用 C++ 的方式可能和你在其它地方见到的有所不同.4.1. 智能指针<br />Tip<br />如果确实需要使用智能指针的话, scoped_ptr 完全可以胜任. 你应该只在非常特定的情况下使用 std::tr1::shared_ptr, 例如 STL 容器中的对象. 任何情况下都不要使用 auto_ptr.<br />“智能” 指针看上去是指针, 其实是附加了语义的对象. 以转载 2011-03-14 20:04:00 · 452 阅读 · 0 评论 -
3.类
3. 类类是 C++ 中代码的基本单元. 显然, 它们被广泛使用. 本节列举了在写一个类时的主要注意事项.3.1. 构造函数的职责Tip构造函数中只进行那些没什么意义的 (trivial, YuleFox 注: 简单初始化对于程序执行没有实际的逻辑意义, 因为成员变量 “有意义” 的值大多不在构造函数中确定) 初始化, 可能的话, 使用 Init() 方法集中初始化有意义的 (non-trivial) 数据.定义: 在构造函数体中进行初始化操作. 优点: 排版方便, 无需担心类是否已经初始化. 缺点: 在构转载 2011-03-14 20:00:00 · 452 阅读 · 0 评论 -
2.作用域
2. 作用域2.1. 名字空间<br />Tip<br />鼓励在 .cc 文件内使用匿名名字空间. 使用具名的名字空间时, 其名称可基于项目名或相对路径. 不要使用 using 关键字.定义: 名字空间将全局作用域细分为独立的, 具名的作用域, 可有效防止全局作用域的命名冲突. 优点: <br />虽然类已经提供了(可嵌套的)命名轴线 (YuleFox 注: 将命名分割在不同类的作用域内), 名字空间在这基础上又封装了一层.<br />举例来说, 两个不同项目的全局作用域都有一个类 Foo, 这样在编译或转载 2011-03-14 19:59:00 · 409 阅读 · 0 评论 -
1.头文件
1. 头文件通常每一个 .cc 文件都有一个对应的 .h 文件. 也有一些常见例外, 如单元测试代码和只包含 main() 函数的 .cc 文件.正确使用头文件可令代码在可读性、文件大小和性能上大为改观.下面的规则将引导你规避使用头文件时的各种陷阱.1.1. #define 保护Tip所有头文件都应该使用 #define 防止头文件被多重包含, 命名格式当是: ___H_为保证唯一性, 头文件的命名应该依据所在项目源代码树的全路径. 例如, 项目 foo 中的头文件 foo/src/bar/baz.h 可按转载 2011-03-14 19:54:00 · 596 阅读 · 0 评论 -
10. 结束语
10. 结束语¶<br />Tip<br />运用常识和判断力, 并 保持一致.<br />编辑代码时, 花点时间看看项目中的其它代码, 并熟悉其风格. 如果其它代码中 if 语句使用空格, 那么你也要使用. 如果其中的注释用星号 (*) 围成一个盒子状, 你同样要这么做.<br />风格指南的重点在于提供一个通用的编程规范, 这样大家可以把精力集中在实现内容而不是表现形式上. 我们展示了全局的风格规范, 但局部风格也很重要, 如果你在一个文件中新加的代码和原有代码风格相去甚远, 这就破坏了文件本身的整体美转载 2011-03-14 20:14:00 · 694 阅读 · 0 评论