标题: Google C++ 开源风格指南 [打印本页] 作者: 王柳 时间: 2025-3-5 18:18 标题: Google C++ 开源风格指南 前言
Google C++ Style Guide
Google 开源项目风格指南 - 中文版
对Google C++风格进行了总结,主要依照上面的中文版内容,此外我增加了一些旁注,方便阅读时理解,部分内容我只进行了很简单的呈现,详见上面的Google官网和中文翻译官网。阅读Google C++ Style可以学会更好的使用C++,阅读时也能再次比力深入的理解C++的特性,如何写出好的C++推荐Effective C++。
这里附一张大佬做的一张图总结Google C++编程规范(Google C++ Style Guide)。
Abseil 是一个由谷歌开发的开源 C++ 库。它的目的是为 C++ 开发提供一系列高质量、可复用的组件,包括算法、容器、字符串处理惩罚、内存管理等方面的工具。这些组件帮助 C++ 程序员更高效地编写代码,同时遵照最佳实践。
Abseil 是对尺度 C++ 库的增补。它并不是要替代尺度库,而是在尺度库的基础上提供了更多的功能和优化。
不使用 C++ 异常。 优点:允许高层处理惩罚底层失败,与其他语言更一致,在测试框架中好用,是处理惩罚构造函数失败的唯一途径,有些第三方库依靠异常。 缺点:添加异常语句时需检查所有调用点,扰乱执行流程,增加二进制文件数据,延伸编译时间,可能鼓励滥用,与现有代码整合困难。
6.7 运行时类型识别(RTTI)
禁止使用,尽量制止,单位测试中可使用,有公道用途但易被滥用。 优点:尺度替代方案可能必要修改类层级,在单位测试和管理对象关系中有效。 缺点:运行时判断类型通常意味着设计题目,使代码难以维护,基于类型的判断树难以修改。
RTTI(Run - Time Type Information)即运行时类型信息,是 C++ 语言的一个特性,它允许程序在运行时获取对象的类型信息。在 C++ 中,通过typeid运算符和dynamic_cast运算符来实现 RTTI 功能。
6.8 类型转换
使用 C++ 的类型转换,如 static_cast<>() 等,不使用 C 风格转换。 优点:C++ 类型转换机制更清晰,查找更夺目。 缺点:语法较复杂。
用 static_cast 替代 C 风格的值转换,或某个类指针必要明确的向上转换为父类指针时。
用 const_cast 去掉 const 限定符。
用 reinterpret_cast 指针类型和整型或其它指针之间进行不安全的相互转换。仅在你对所做统统了然于心时使用。
6.9 流