C++命名规则 (转载仅作参考)
如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。
活跃在生物学、化学、军队、监狱、黑社会、恐怖组织等各个领域内的大量有识先辈们都曾经无数次地以实际行动证明了以上公理的正确性。除了上帝(设它可以改变世间万物的秩序)以外,相信没人有实力对它不屑一顾。
在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。
在引入细节之前,先说明一下命名规范的整体原则:
| 
 同一性  | 
 在编写一个子模块或派生类的时候,要遵循其基类或整体模块的命名风格,保持命名风格在整个模块中的同一性。  | 
| 
 标识符组成  | 
 标识符采用英文单词或其组合,应当直观且可以拼读,可望文知意,用词应当准确。  | 
| 
 最小化长度 && 最大化信息量原则  | 
 在保持一个标识符意思明确的同时,应当尽量缩短其长度。  | 
| 
 避免过于相似  | 
 不要出现仅靠大小写区分的相似的标识符,例如“i”与“I”,“function”与“Function”等等。  | 
| 
 避免在不同级别的作用域中重名  | 
 程序中不要出现名字完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但容易使人误解。  | 
| 
 正确命名具有互斥意义的标识符  | 
 用正确的反义词组命名具有互斥意义的标识符,如:"nMinValue"和"nMaxValue","GetName()" 和 "SetName()" ....  | 
| 
 避免名字中出现数字编号  | 
 尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事)。  | 
类/结构
| 
 除了异常类等个别情况(不希望用户把该类看作一个普通的、正常的类之情况)外,C++类/结构  
 不同于C++类的概念,传统的C结构体只是一种将一组数据捆绑在一起的方式。传统C结构体的命名规则为: 
  | 
函数
  | 
变量
| 
 变量应该是程序中使用最多的标识符了,变量的命名规范可能是一套C++命名准则中最重要的部分: 
  | 
常量
| 
 C++中引入了对常量的支持,常量的命名规则如下: 
  | 
枚举、联合、typedef
| 
 枚举、联合及typedef语句都是定义新类型的简单手段,它们的命名规则为: 
  | 
宏、枚举值
  | 
C++命名规则 (转载仅作参考)的更多相关文章
- c语言命名规则 [转载]
		
C语言变量名命名规则 一.程序风格: 1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行. 要求相匹配的 ...
 - 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
		
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
 - 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
		
. 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...
 - main函数(本文较老,仅作参考)
		
Xcode4.2之前的main函数如下: int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePoo ...
 - iOS开发——实时监控网速(仅作参考,发现一点问题)
		
开发中用到获取网速的地方,应该就两种: 1.下载速度,这种可以直接在接受数据的地方统计计算.这个就不讲了. 2.获取手机网卡的数据,可以监控网卡的进出流量,下面就是. #import "Vi ...
 - html页面的CSS、DIV命名规则(仅供参考学习)
		
CSS命名规则: 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中: ...
 - Java包名命名规则(转载)
		
转载自:http://lilinhai548.blog.163.com/blog/static/5847332920155132151359/ 鸣谢原作者 学习Java的童鞋们都知道,Java的包. ...
 - c#命名规则参考
		
命名规则参考:1.从组件类型名中移去T前缀.例如TButton变成Button.2.除了第一个元音,删去所有元音字母.例如,Button变成bttn,Edit变成edt.3.压缩双字母.例如,bttn ...
 - [转载]C++命名规则
		
在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出.一套定义良好并且完整的.在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性. 在引入细节之前,先说明一下 ...
 
随机推荐
- 备份win10的驱动程序
			
目录 折腾历程 怎么备份驱动 备份的驱动如何使用 关于驱动程序的OS兼容性 驱动程序的其他安装方式 1.折腾历程 从闲鱼上收了一个INSIGNIA的二合一笔记本,w7100,因原装win10性能不行自 ...
 - 关于MySql8.X设置允许root远程登陆的问题
			
这是最近在mac上使用mysql workbench上遇到的一个小问题,仔细想了想其实这个问题本身就有毛病,论起正式环境来哪家公司是直接使用root去远程登录的呢?恐怕没几个,so不纠结root了创建 ...
 - iOS 动态库、静态库 . framework 总结(2017.1.25 修改)
			
修改于2017.1.25 使用Xcode Version 8.2.1 1.怎么创建.framework? 打开Xcode, 选择File ----> New ---> Project 选择 ...
 - Daily Scrumming 2015.10.21(Day 2)
			
今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 配置ruby与rails环境 配置mysql与数据库用户管理 配置apache2环境 学习rails Ac ...
 - Java锁的种类以及辨析
			
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类 ...
 - python learning Exception & Debug.py
			
''' 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返 ...
 - BETA-7
			
前言 我们居然又冲刺了·七 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 过去两天完成了哪些任务 经过分析发现,为提升速率估测的可靠性,目前最具可改造性的参数为帧间间隔,调用参 ...
 - beta冲刺7/7
			
队名:Boy Next Door 燃尽图 代码写入 https://github.com/mangoqiqi/paybook/tree/master/Desktop/Web%E8%B4%A6%E5%8 ...
 - UIPickerView的使用
			
简介:UIPickerView是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活.UIPick ...
 - UTC时间与北京时间
			
经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...