设为首页 加入收藏

TOP

命名习惯(Naming Conventions)
2013-10-07 13:18:42 来源: 作者: 【 】 浏览:57
Tags:命名 习惯 Naming Conventions

命名习惯(Naming Conventions)

我尝试挑选有意义的名称用于objects, classes, functions, templates等等身上,但某些隐藏于名称背后的意义可能不是那么显而易见,例如我最喜爱的两个参数名称lhs和rhs。它们分别代表 "left-hand side"(左手端)和 "right-hand side"(右手端)。我常常以它们作为二元操作符(binary operators)函数如operator== 和operator* 的参数名称。举个例子,如果a和b表示两个有理数对象,而如果Rational对象可被一个non-member operator* 函数执行乘法(如条款24所言),那么下面表达式:

  1. a * b 

等价于以下的函数调用:

  1. operator*(a, b) 

在条款24中我声明此一operator* 如下:

  1. const Rational operator* (const Rational& lhs, const Rational& rhs); 

如你所见,左操作数a变成函数内的lhs,右操作数b则变成rhs。

对于成员函数,左侧实参由this指针表现出来,所以有时我单独使用参数名称rhs。你可能已经在第5页的若干Widget成员函数声明中注意到了这一点。对了,我经常以Widget class示例,"Widget" 并不代表任何东西,它只是当我需要一个示范用的class名称时偶尔采用的名称,它和GUI toolkits的widgets完全无关。

我常将"指向一个T型对象"的指针命名为pt,意思是 "pointer to T"。下面是一些例子:

  1. Widget* pw;         //pw = "ptr to Widget".  
  2.  
  3. class Airplane;  
  4. Airplane* pa;       //pa = "ptr to Airplane".  
  5.  
  6. class GameCharacter;  
  7. GameCharacter* pgc; //pgc = "ptr to GameCharacter" 

对于references我使用类似习惯:rw可能是个reference to Widget,ra则是个reference to Airplane。

当我讨论成员函数时,偶尔会以mf为名。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于线程(Threading Considerati.. 下一篇条款01:视C++ 为一个语言联邦

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: