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]_ ...
随机推荐
- git pull
今天在服务器上git pull是出现以下错误: error: Your local changes to the following files would be overwritten by mer ...
- WPF之全局快捷键
目录 1.WPF快捷键实现方式 2.全局快捷键设置界面 3.Windows API调用 4.注册全局快捷键 5.快捷键触发 WPF快捷键实现方式 WPF快捷键实现主要有自定义快捷键命令和全局快捷键两种 ...
- [转]android 获取视频帧
本文转自:http://blog.csdn.net/heart_Moving/article/details/17414067 今天做Android视频文件解码,需求:从一个视频文件获取到一帧一帧的图 ...
- CETV面试总结
在通过CETV的网上笔试之后,我收到了面试通知,我纠结片刻,就买了第二天去广州的高铁,虽然感觉自己硬件方面的知识已经快忘完了,但还是想去一下,起码是一种经历.对一个路痴和知识储备不足的我来讲,这一切都 ...
- SVN服务器&客户端的搭建和使用
目录结构: 1. SVN服务器搭建和使用-VisualSVNServer 2. SVN客户端安装和使用-TortoiseSVN 3. TortoiseSVN使用方法 SVN简介 SVN是Subvers ...
- 用U3D寻找看电视的感觉!!
调整 Camera 的角度和你一致, 找到看电视的感觉了吧?! Y 224度 再调下X就行
- C# 断点续传原理与实现
在了解HTTP断点续传的原理之前,让我们先来了解一下HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由 客户机(浏览器)向服务器(WEB SERVER)提交请求时发 ...
- 在Mac mini上安装 ESXi 5.5
Mac mini 是 mid 2011 版本的, 安装原版ESXi 5.5 update 1 非常顺利, 没遇到任何问题. 提示: 1. 安装会初始化整个硬盘, 有数据要先备份 2. ESXi只使用有 ...
- python里的del变量无法立刻释放内存的解决办法
最近在python开发的时候,用到了一些很占用内存的操作,导致后续程序执行很慢甚至无法执行.探索了一下,最终解决了这个问题. 截图解释: python变量占用了内存,仅仅通过del变量的方式,只是让这 ...
- 003商城项目:数据库的创建以及ssm框架的整合
我们创建一个数据库.如下: 然后开始整合框架: 先给出整合框架的思路: 我们的Dao层用的是Mybatis,其实Mybatis与Spring整合要做的就是把他的数据库连接这部分全部交给Spring来 ...