读书频道 > 网站 > 网页设计 > 大规模C++程序设计
1.4.1.3 数据成员名
15-04-27    下载编辑
收藏    我要投稿   

本文所属图书 > 大规模C++程序设计

《大规模C++程序设计》由世界级软件开发大师John Lakos亲笔撰写,是C++程序设计领域最有影响力的著作之一。作者结合自己多年从事大规模C++项目的开发经验,详细介绍了大规模C++程序设计涉及的一系列概念、理论、立即去当当网订购

给类中的数据成员添加一致的前缀(像d_),可读性和可维护性就会显著提高。请看下面的Shoe类:


 

在成员函数内部,局部(自动的)变量的值只是临时的,成员函数的值返回之后临时存储的局部变量值就不存在了。另一方面,类成员数据定义了对象的状态,它存在于成员函数调用之间:


 

使用“d_”的主要目的是在上下文中以独立的、机制化的方式突出显示类的数据成员。由于这两种数据类型有非常不同的用途,使用按字母顺序区分类数据成员名和局部变量名有助于让对象实现更容易理解。

我们通常会看到成员函数将一个实例变量(如d_size)设置为只包含一个赋值的表达式:


 

将“d_”放到数据成员的前面,也避免了为操纵函数的参数设计出不知道其含义的名字(例如,sz)。


 

“d_”前缀的选择是十分随意的。我们不单独使用一个下划线(_)作为前缀,是因为以一个下划线作为开始的标识符是留给C编译器使用的。为此,一些人更喜欢使用尾部下划线。



我发现把后缀留作它用是有好处的(例如“_p”标识一个指针数据成员)。你也可能打算使用一个不同的前缀(如“s_”标识静态类数据)。无论是在一个类中还是在文件作用域内,非常量静态数据都可能包含独立实体的状态信息。正如6.3.5节所论述,静态类数据成员可以被移到一个.c文件的作用域中,以帮助避免编译时耦合。由于这两种数据类型具有非常相似的属性和互换性,所以用一个“s_”标识.c文件中的状态变量也是有意义的。始终遵循这种命名约定可以方便地搜索一个组件内所有独立实体的状态变量。

值得注意的是,静态类和文件作用域常量数据是无状态的。我们只需将它的名字全都大写就可以标识这个数据的性质和使用期。对于类作用域内的常量数据,一个S_DEFAULT_VALUE这样的名字简写为DEFAULT_VALUE,效果不变。在本书中,我们更喜欢使用S_DEFAULT_VALUE来标识类作用域常量静态数据,以提醒我们需要将它保持私有(见2.2节)。

相比之下,一个非静态常量数据成员使用期更为有限,它的值在对象的每个具体表现中不必总是相同的。因此,它的名字以小写字母出现而且以前缀“d_”开始:


 

我们整个公司都采用“d_”的约定,没有人有意见。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站