华为C++编程规范2012版

需积分: 10 9 下载量 193 浏览量 更新于2024-07-28 收藏 1001KB PDF 举报
"华为技术有限公司C++语言编程规范.pdf" 这篇文档是华为技术有限公司制定的一份C++语言编程规范,旨在确保代码的质量、可读性、可维护性和团队间的协同开发效率。这份规范详细规定了在编写C++代码时应当遵循的最佳实践和标准。 0. 前言 前言部分可能阐述了制定该规范的目的,强调了遵守编程规范对于软件开发的重要性,以及它如何有助于提高代码质量和团队协作。 0.1 代码总体原则 这部分可能涵盖了编程的一般准则,如清晰的代码结构、良好的命名约定、避免魔法数字、注释的使用等。这些原则旨在提高代码的可读性和可理解性。 0.2 与C语言编程规范的关系 由于C++是C语言的扩展,此部分可能讨论了C++规范与C语言规范的异同,以及在C++中需要额外考虑的面向对象特性。 0.3 规范实施、解释 这部分可能详细说明了如何在实际开发中应用这些规范,包括代码审查、培训和持续改进的流程。 0.4 术语定义 这部分给出了规范中使用的专业术语的定义,以确保所有开发者对概念有统一的理解。 1. 常量 这部分可能涉及了常量的使用,如const关键字的正确使用,以及枚举(enum)类型的规范。 2. 初始化和类型转换 2.1 声明、定义与初始化 这部分可能强调了变量必须在声明时初始化,避免未定义的变量,以及如何进行有效的初始化。 2.2 类型转换 这里可能包含关于隐式和显式类型转换的规定,以防止因类型不匹配导致的问题,比如使用static_cast、dynamic_cast、reinterpret_cast和const_cast等。 3. 函数 3.1 内联函数 内联函数的使用可能被限制或有明确指导,以防止代码膨胀并优化性能。 3.2 函数参数 可能包含了关于函数参数的命名、默认值、传递方式(传值、引用或指针)以及函数重载的规则。 以上内容仅根据给出的部分信息推测,完整的规范可能还包括类的设计、异常处理、模板、内存管理、多线程编程、错误处理等方面的规定。这份规范是华为技术有限公司内部的技术标准,对C++程序员在华为的工作具有指导意义,以确保代码质量符合公司的高标准。
2017-11-27 上传
组织和策略问题 1 第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化) 2 第1条 在高警告级别干净利落地进行编译 4 第2条 使用自动构建系统 7 第3条 使用版本控制系统 8 第4条 做代码审查 9设计风格 11 第5条 一个实体应该只有一个紧凑的职责 12 第6条 正确、简单和清晰第一 13 第7条 编程中应知道何时和如何考虑可伸缩性 14 第8条 不要进行不成熟的优化 16 第9条 不要进行不成熟的劣化 18 第10条 尽量减少全局和共享数据 19 第11条 隐藏信息 20 第12条 懂得何时和如何进行并发性编程 21 第13条 确保资源为对象所拥有。使用显式的RAII和智能指针 24 编程风格 27 第14条 宁要编译时和连接时错误,也不要运行时错误 28 第15条 积极使用const 30 第16条 避免使用宏 32 第17条 避免使用“魔数” 34 第18条 尽可能局部地声明变量 35 第19条 总是初始化变量 36 第20条 避免函数过长,避免嵌套过深 38 第21条 避免跨编译单元的初始化依赖 39 第22条 尽量减少定义性依赖。避免循环依赖 40 第23条 头文件应该自给自足 42 第24条 总是编写内部#include保护符,决不要编写外部#include保护符 43 函数与操作符 45 第25条 正确地选择通过值、(智能)指针或者引用传递参数 46 第26条 保持重载操作符的自然语义 47 第27条 优先使用算术操作符和赋值操作符的标准形式 48 第28条 优先使用++和--的标准形式。优先调用前缀形式 50 第29条 考虑重载以避免隐含类型转换 51 第30条 避免重载&&、||或 ,(逗号) 52 第31条 不要编写依赖于函数参数求值顺序的代码 54 类的设计与继承 55 第32条 弄清所要编写的是哪种类 56 第33条 用小类代替巨类 57 第34条 用组合代替继承 58 第35条 避免从并非要设计成基类的类中继承 60 第36条 优先提供抽象接口 62 第37条 公用继承即可替换性。继承,不是为了重用,而是为了被重用 64 第38条 实施安全的覆盖 66 第39条 考虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的 68