C++命名规范
1.1 类型名
首字母大写,末尾加_T。如: class TnppCoverageArea_T{…};
1.2 1.2 变量和函数名
变量和函数名中首字母小写,其后每个英文单词的第一个字母大写,其他小写。
如: int flexPageCount;
1.3 全大写函数名
有一类函数,它们调用普通函数,只是对普通函数的错误返回做一般化处理。这些函数的名字要和所包含的函数名相同,只是全用大写字母。
1.4 宏、常量和模板名
全部大写。
如: #define PIE 3.14 const int LENGTH = 1024; template<class TYPE_T>
1.5 指针标识符名
以p或者Ptr开头。如: char* pName;
1.6 变量名前缀
i_ 类内数据成员(对象级成员) instance scope
c_ 类内静态数据成员(类级成员) class scope
g_ 全局变量 global scope
f_ 文件作用域变量(静态变量) file scope
如:
Class Message_T
{
//类内静态数据成员
Static int c_id;
//类内普通数据成员
int i_id;
}
//全局变量
int g_id;
//静态变量(文件作用与)
static int f_id;
1.7 全局命名空间级标识符的前缀
全局命名空间级标识符:全局或文件级变量名、常量名、宏名、类型名、函数名等
前缀:全大写字母,长度少于3个字母
如:class UML_HashMap_T
1.8 减少全局命名空间级标识符
可将其归放到某个命名空间、类或函数中。
1.9 命名时避免使用国际组织占用的格式
己知的被占用的格式
双下划线开头 ISO C++、ANSI C;
包含双下划线 ISO C++;
单下划线开头 ISO C++、ANSI C;
E[0_9A_Z]开头 ANSI C;
is[a_z]开头 ANSI C;
to[a_z]开头 ANSI C;
LC_开头 ANSI C;
SIGLA_Z]开头 ANSI C;
str[a_z]开头 ANSI C;
mem[a_z]开头 ANSI C;
wcs[a_z]开头 ANSI C;
_t结尾 POSIX;
1.10 命名要本着清楚、简单的原则
1.11 尽量用可发音的名字
// 不可发音的名字
class Ymdhms;
// 可发音的名字
class Timestamp_T;
1.12 尽量用英文命名
1.13 尽量选择通用词汇并贯穿始终
1.14 避免用模棱两可、晦涩或不标准的缩写
1.15 避免使用会引起误解的词汇
1.16 减少名字中的冗余信息
1.17 建议起名尽量通俗,太专一会限制以后的扩展
1.18 名字最好尽可能精确地表达其内容
1.19 避免名字中出现形状混淆的字母或数字
如:F0o
1.20 命名类和成员使得“object.method()”有意义
1.21 类和对象名应是名词
1.22 实现行为的类成员函数名应是动词
1.23 类的存取和查询成员函数名应是名词或形容词
1.24 变量名应是名词
1.25 布尔型的名字要直观
1.26 关于函数的左值参数和右值参数名
用lhs做左值参数的名字,用rhs做右值参数的名字。
如:
// 类的拷贝构造函数
MyC1ass_T::MyClass_T(MyClass_T const&rhs);
// 赋值函数
int operator=(String const&lhs,String const&rhs);
1.27 避免局部名和外层的名字冲突
1.28 用a、an、any区分重名参数
void MyClass_T::severity (int aSeverity)
{
i_severity=aSeverity;
}
1.29 模板类型名应有意义
// 用T1、T2不好
template〈class T1,int T2〉
class Vector_T
{
Tl i_data[T2];
};
// 用TYPE-T和SIZE就清楚多了
template〈class TYPE_T,int SIZE〉
class Vector_T
{
TYPE_T i_data[SIZE];
};
原文转自:http://www.cnblogs.com/johnpher/archive/2012/10/15/2723727.html
原作者为 Jiang, X.
C++命名规范的更多相关文章
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- Java命名规范
驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...
- JavaScript知识点总结(命名规范,变量的作用域)
命名规范 有人说JavaScript的宽容性是这个语言最糟糕的方面之一.比如说想把2个数字加在一起,JavaScript会把其中一个数字解析成字符串,那么就会得到一个奇怪的字符串,而不是2个数字的和. ...
- js的命名规范
js的命名规范 1.驼峰命名法:首字母是小写的,接下来的字母都以大写字符开头.例如: var testValue = 0; var oneValue = 10; 2. ...
- 浅谈Android编码规范及命名规范
前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...
- [No000099]软件版本命名规范
软件版本阶段说明 Base: 此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构. Alpha: 此版本表示该软件在 ...
- Google C++命名规范
时间:2014.03.02 地点:基地 -------------------------------------------------------------------------------- ...
- javascript命名规范
javascript命名规范 3.命名 命名的方法通常有以下几类: a).命名法说明 1).camel命名法,形如thisIsAnApple 2).pascal命名法,形如ThisIsAnApple ...
- Android 命名规范 (提高代码可以读性)
android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...
- Android资源(图片)命名规范
(转自:http://www.jb51.net/article/38796.htm) 图片命名注意: 1,不能以下划线("_")开头: 2,以数字加下划线("[0-9]_ ...
随机推荐
- centos---无线上网的电脑所安装的虚拟机网络设置
1.共享设置 找到本地的无线网卡,右键---属性---共享,设置如下 2.修改VMware Network Adapter VMnet1 选中VMware Network Adapter VMnet1 ...
- 解决docker容器中文乱码,修改docker容器编码格式
前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,所有的中文文件名全部变成?,英文文件名则正常显示. 问题经过定位,发现后台代码的multipartfile类在执行transterto ...
- openfire+asmack搭建的安卓即时通讯(七) 15.5.27
本地化之章! 往期传送门: 1.http://www.cnblogs.com/lfk-dsk/p/4398943.html 2.http://www.cnblogs.com/lfk-dsk/p/441 ...
- No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案 首先这个问题的产生是由于缺少Theme.App ...
- Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法
Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类 的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...
- 使用while循环语句和变量输出九九乘法表
输出的结果如下:
- NOI 2002 营业额统计 (splay or fhq treap)
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- 使用javascript实现的雪花飞舞的效果
原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除,于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除, ...
- Python的高级特性10:无聊的@property
@property装饰器其实有点无聊,单独拿出来作为一个知识点其实没必要,尽管它可以将方法变成属性,让get和set方法更好用,但是,它破坏了python的简洁(不是代码的简洁而是指语法上). 下面来 ...
- php中的ip2long和long2ip的理解
IPv4地址是如何表示的 IPv4使用无符号32位地址,因此最多有2的32次方减1(4294967295)个地址.一般的书写法为用4个小数点分开的十进制数,记为:A.B.C.D,比如:157.23.5 ...