设为首页 加入收藏

TOP

effectiveC++(十八)(二)
2010-12-26 23:21:08 来源: 作者: 【 】 浏览:4110
Tags:effectiveC 十八
缺点是难以维护(见条款m32)。含有大量函数的类比含有少量函数的类更难维护和升级,更难以避免重复代码(以及重复的bug),而且难以保持接口的一致性。同时,也难以建立文档。

最后,长的类定义会导致长的头文件。因为程序在每次编译时都要读头文件(见条款34),类的定义太长会导致项目开发过程中浪费大量的编译时间。

概括起来就是说,无端地在接口里增加函数不是没有代价的,所以在增加一个新函数时要仔细考虑:它所带来的方便性(只有在接口完整的前提下才应该考虑增加一个新函数以提供方便性)是否超过它所带来的额外代价,如复杂性,可读性,可维护性和编译时间等。

但太过吝啬也没必要。在最小的接口上增加一些函数有时是合理的。如果一个通用的功能用成员函数实现起来会更高效,这将是把它增加到接口中的好理由。(但,有时不会,参见条款m16)如果增加一个成员函数使得类易于使用,或者可以防止用户错误,也都是把它加入到接口中的有力依据。

看一个具体的例子:一个类模板,实现了用户自定义下标上下限的数组功能,另外提供上下限检查选项。模板的开头部分如下所示:

template<class t>
class array {
public:
  enum boundscheckingstatus {no_check_bounds = 0,
                             check_bounds = 1};

  array(int lowbound, int highbound,
       boundscheckingstatus check = no_check_bounds);

  array(const array& rhs);

  ~array();

  array& operator=(const array& rhs);

private:
  int lbound, hbou

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇effectiveC++(十九) 下一篇effectiveC++(十七)

评论

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