Item23 宁以non-member,non-friend替换member

面向对象守则要求数据应该尽可能封装,愈多函数可访问它,数据的封装性就愈低,故成员函数封装性差。

在很多方面,非成员做法比成员做法好。

  • 通常,可以令成员函数为一个static函数,或让成员函数位于类同级的namespace下。

如:

namespace WebBrowserStuff {
    class WebBrowser{...};
    void clearBrowser(WebBrowser& wb);
};
  • 将所有便利函数放在多个头文件内但隶属同一个命名空间,意味客户可以轻松扩展这一组便利函数,降低了编译依存性,这正是STL的做法

猜你喜欢

转载自blog.csdn.net/u013015629/article/details/107437044