C++语言编程规范-风格

01

11.1 标示符命名与定义

建议 11.1 类命名以大写字母开头,中间单词也以大写开头

示例:

class UrlTable;

class UrlTableProperties;

02

11.2 排版

建议 11.2 类的声明按照一定的次序进行,关键字不缩进

说明:类的声明按照一定的次序和规范进行。建议的次序如下:

⚫ 按照存取控制特性段排序:public、protected、private,如果没有可以忽略。这个排序是让声明的时候使用者首先看到最关心的特性(对外接口)。

⚫ 在每一段中按照如下顺序声明(先定义后续用到的类型,常量和 enums;然后定义行为(构造,析构,成员函数),最后定义成员变量):

  1. typedefs和enums;

  2. 常量;

  3. 构造函数;

  4. 析构函数;

  5. 成员函数,含静态成员函数;

  6. 数据成员,含静态数据成员。

03

建议 11.3 构造函数初始化列表在同一行或按 4 格缩进并排几行

示例:初始化列表放在同一行:

复制代码
class TaskProgressTimer  {  public:  TaskProgressTimer(CHRCollectTask & parent):m_delayTime(30)  { }  };

初始化列表并排多行:

复制代码
class TaskProgressTimer  {  public:  TaskProgressTimer(CHRCollectTask & parent):  m_parTask(parent) ,  m_delayTime(30) ,m_intervalTime(50) ,  timer_handler_( reactor(), *this, m_delayTime, m_intervalTime )  {  }

04

11.3 注释

建议 11.4 使用'//'注释方式,而不是'/* */'

说明:说明:使用 '//' 而不是 '/* */' 来注释 C++代码。使用'/* */'的缺点就是容易产生交叉错乱。

即使注释多行代码,//仍然是首选,现在的编辑器提供多行加'//'和去'//'的功能。

建议 11.5 为重要的类或结构体作注释,注释格式支持工具自动生成

说明:为重要的类或结构体作注释,不宜写太多无用的注释。注释主要表达代码难以直接表达的意思。

建议 11.6 为所有重要的成员函数作注释

建议 11.7 正式发布的代码不能使用 TODO 注释

说明:对那些临时的、短期的解决方案,或待改进的代码使用 TODO 注释。使用全大写的字符串 TODO,后面

括号里加上姓名、工号等信息。

//TODO(姓名: 工号: ):注释内容

05

11.4 文件组织

建议 11.8 整个项目需要的公共头文件应放在一个单独的目录下

建议 11.9 一个模块的目录层次不宜太深,以 1~2 层为宜,接口文件放在最外层

建议 11.10 保持文件前言的简洁性

说明:给出版权说明和该文件的简介后即可切入正题------编码。

相关推荐
步行cgn15 分钟前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
便利店102419 分钟前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
传奇开心果编程1 小时前
【Rust入门练中学】第5课:引用与借用
开发语言·rust·引用·编程语言理论·通用编程语言·借用
qetfw1 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
电子云与长程纠缠1 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
syagain_zsx1 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼2 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
cspttty2 小时前
2027风险管理岗准备路线:数学与应用数学如何补齐金融、SQL与Python
开发语言·python·金融
我命由我123452 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
toooooop82 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos