回 帖 发 新 帖 刷新版面

主题:[转帖]c++程序中的命名惯例

下述惯例中的用词“必须”指必须被遵循,“应该”指强烈推荐

一般的命名惯例

3. 表示类型(type)的名字必须大小写结合并以大写字母开头
4. 变量名字必须大小写结合并以小写字母开头
5. 命名的常量(包括枚举值)必须都是大写字母,单词间用下滑线隔开
6. 表示方法或函数的名字必须是大小写结合的动词并以小写字母开头
7. 表示名字空间的名字应该全部小写
8. 表示模板类型的名字应该是一个大写的字母
         template<class T> ...
         template<class C, class D> ...
9. 缩略词用于名字时不能再全部大写
         exportHtmlSource();    // NOT: exportHTMLSource();
         openDvdPlayer();       // NOT: openDVDPlayer();  
10.全局变量应该带上::操作符前缀
11.类的私有变量应该加后缀_
         class SomeClass {
         private:
               int  length_;
         };
12.泛指的变量应该用与和他们类型相同的名字
          void setTopic (Topic *topic)       // NOT: void setTopic (Topic *value)
                                                            // NOT: void setTopic (Topic *aTopic)
                                                           // NOT: void setTopic (Topic *x)
          void connect (Database *database)  // NOT: void connect (Database *db)
                                                                 // NOT: void connect (Database *oracleDB)
  非泛指的变量担任一个角色。这些变量经常可以结合用途和类型来命名:
         Point startingPoint, centerPoint;
         Name  loginName;

13.所有的名字都应用英语命名
14.作用域大的变量应该用一个长的名字,作用域小的变量可以用短的名字。
15.对象的方法名应避免加入对象名,因为对象名已被隐含
          line.getLength();    // NOT:  line.getLineLength();  

回复列表 (共5个回复)

沙发

怎么没人来看啊
多好啊!!
支持楼主!!

板凳

不同意楼主的所谓必须之类的说法。真正必须的是语法规定,不是惯例。如果你不采用匈牙利命名法,是不是编译器无法识别你的程序?

3 楼

HOHO,我觉得"必须"在这里的意思就是,约定俗成!
看个人喜好了!

4 楼

我是觉得个人习惯+一些常用的规则,比如什么时候用大写,什么时候用小写,尽量使用人家看得懂意思的名字,等,这些是基本的规则大家还是应该遵循的,也不要太叛逆或者逞强。有件事我印象比较深,就是裘宗燕老师在《the c++ programming language》里面硬把inline翻译为“在线”,还解释了一大堆原因,但是从这里就给我留下了不好的印象,为什么全世界的中国人都叫“内联”,就你叫“在线”??

有时候东西是没有对错的,只有习惯而已,比如:呆板,我记得小时候上学的时候叫:ai ban ,但是好像初中还是高中以后听说改为:dai ban,为什么呢??因为大部分人管它叫dai ban,那么就是dai ban了。世上本没有路,走的人多了也就变成了路。

5 楼

楼上。
inline不光叫在线,叫内联,谭浩强还叫他内置函数呢。

我来回复

您尚未登录,请登录后再回复。点此登录或注册