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]_ ...
随机推荐
- CSS background-position 用法详细介绍
语法: background-position : length || length background-position : position || position 取值: length : ...
- LaTeX字体相关
以下内容均来自网络. 字体命令: 相应的字体声明都有相应的字体命令 family: \textrm{文本} \texttt{ } \textsf{ } shape : \textup{文本} \ ...
- C#学习笔记-Windows窗体基本功能(Login登录界面)
本菜鸟由于实习工作的原因,不得不快速接触C#语言,刚刚好又要做毕业设计,所以就通过自学的方式一举两得地完成这两件事情. 故此文字记录或代码中的各种文件名之类均是以毕业设计为模版记录的,看着不方便之处请 ...
- Java 三大特性——封装、继承、多态
一.封装 封装,实际就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用. 概念:在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节 ...
- Java开发之JSP行为
一.Java Bean行文 1.重点说明 Java Bean行为是一组与Java Bean相关的行为,包括useBean行为.setProperty行为.getProperty行为等.Java Bea ...
- Unity(64bit)5.1 打开无故出现框框,纹理不见了
Unity(64bit)5.1打开无故出现框框,纹理不见了 原来是脚本有误影响了,U3D编辑器打开那一刹那出错
- HTML DOM Document 对象
HTML DOM Document 对象 HTML DOM 节点 在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点: 文档是一个文档. 所有的HTML ...
- python中的字符串操作
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' str.capitalize() ''' str = 'this is a string example' ...
- 微软职位内部推荐-SW Engineer II for Cloud Service
微软近期Open的职位: Positions: SDE for Big Data Cloud Services Azure Big Data Cloud Services and Cosmos are ...
- [转]源代码的管理和发布:以SVN为例
FROM : http://ju.outofmemory.cn/entry/47277 前几天在微博吐槽了SVN的几个不爽的地方:.svn文件满天飞.分支管理的麻烦.不爽一般来说都是有过对比后才有如此 ...