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]_ ...
随机推荐
- Floyd算法解决多源最短路径问题
Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包. Floyd-Warshall算法 ...
- [Copy]Bird's booklist
Copy from Bird Thanks! Here is his website: Bird's book list 0x01 编程语言 Python基础教程(第2版) Effective Jav ...
- 第8章 用户模式下的线程同步(3)_Slim读写锁(SRWLock)
8.5 Slim读/写锁(SRWLock)——轻量级的读写锁 (1)SRWLock锁的目的 ①允许读者线程同一时刻访问共享资源(因为不存在破坏数据的风险) ②写者线程应独占资源的访问权,任何其他线程( ...
- HTML 学习笔记 JavaScript (节点)
HTML 节点: HTML DOM定义了所有HTML元素的对象和属性 以及访问它们的方法. HTML DOM是关于如何获取 修改 添加 或 删除HTML元素的标准. 在js中通过document这个对 ...
- SuperSlidev2.1滑动门
1.引用jQuery.js 和 jquery.SuperSlide.js 因为SuperSlide是基于jQuery的插件,所以前提必须先引用jQuery,再引用SuperSlide <head ...
- JAZZ
今天知道公司中的JAZZ是变形金刚中的“爵士”,如果写内部代码,就好像在操作“爵士”,还是蛮有意思的.先是接触了jQuery,然后是jQuery-ui,然后jazz,继续中...... JAZZ: 爵 ...
- APMServ 支持.htaccess伪静态
假如你的APMServ安装在X盘APMServ5.2.6目录的话请按以下步骤做. X:\APMServ5.2.6\Apache\conf\httpd.conf 文件找到你所在的虚拟目录修改以下这个地 ...
- Windows 8.1 新增控件之 TimePicker
之前已经为大家介绍过DatePicker 控件的相关内容,有日期控件当然就得有时间控件,本篇将和各位一起了解TimePicker 的使用方法. 先来介绍一下ClockIdentifier 属性,默认情 ...
- 华为acl(traffic-filter)和dhcp管理
华为alc配置实例:-traffic-filter # 在VLAN100上配置基于ACL的报文过滤,允许源IP地址为192.168.0.2/32的报文通过,丢弃其他报文. <HUAWEI> ...
- tcpip的可靠性