码迷,mamicode.com
首页 > 其他好文 > 详细

改善程序与设计的55个具体做法 day9

时间:2016-10-09 23:09:55      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

 

条款23:宁以non-member、non-friend替换member函数

即 以非成员函数 非友元函数 替换成员函数。

 

直观上,面向对象应该尽可能的封装,封装数据、封装操作等等,所以这个条款可能有悖常理。

比如一个类成员函数CObj::Func(){ Dosomething(); }

该函数会调用其他成员函数做一点微小的工作,想一下把成员函数换成普通函数Func2(const CObj& obj);

Func2(const CObj& obj)

{

    obj.Dosomething();

}

 

看,非成员、非有缘函数也可以做到,而且【非成员 非友元函数 不会访问到类的其他成员, 这样会更少的机会犯错】。

然而,该【非成员 非友元函数 仍然可以是其他类的成员函数或友元函数】 

 

当程序组织的形式上,可以把该 函数 和 该类 放在同一个命名空间下。

 

系甘啦。

 

改善程序与设计的55个具体做法 day9

标签:

原文地址:http://www.cnblogs.com/cuish/p/5944103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!