[问题] data和 function 是否需要分class?

楼主: yhn0tgb60 (呦厚厚)   2016-01-24 12:04:14
最近在思考一个问题,
就是 data 和 function 是否需要分不同的class,
因为 有时候, 很多 function 的资料 就是丢参数进去, 再回传资料,
不会需要动到 this 的 member 的 data,
所以这类的 function 我另外独立一个class, 并且是唯一的 class,
甚至 就算需要动到 this 的 member 的 data,
我可以把整个 data 的 pointer 丢给他, 让他去给,
也就是完全把 data和 function, 分成不同的 class,
这样 function 就不用new delete 了, 只需要new delete data,
可以节省效能?????
但是又听说 在c++的底层, function 和 data, 本来就有做不同的处理,
function 本来就有独立出来,
所以不需要这样????
不过查不到确定的资料.......
想请问大家的想法?????
作者: x000032001 (版废了该走了)   2016-01-24 12:22:00
不需要member 那就static func啊 甚至给他namespace就好也不用塞进class了
作者: Caesar08 (Caesar)   2016-01-24 13:13:00
看完不知道你在说什么东西 另外中间function那段你要function new delete什么东西?不用"动"到data member,那你写const就好不用"用"到data member,那你就参考一楼的作法
作者: Clangpp (Clang++)   2016-01-24 13:34:00
其实这就是一种design pattern阿XD不用 上面有说了 你用namespace就好然后 effective C++ item 23 宁以non-member non-friend取代member 函式不知道能不能解释你的问题
作者: Caesar08 (Caesar)   2016-01-24 13:43:00
不会,而且你这样func需要是data的friend除非逼不得以,否则friend还是少用为妙不过听我这样说,还不如参考standard C++是怎么说的https://isocpp.org/wiki/faq/friends
作者: bibo9901 (function(){})()   2016-01-24 18:16:00
你这样跟non-virtual member function一模一样啊又何苦分两边写
作者: firejox (Tangent)   2016-01-24 18:45:00
你可以去研究function pointermember funciton 跟这个有关系
作者: ronin728 (浪人)   2016-01-24 18:59:00
拆不拆开效率不会差太多。独立函数别再另外包class,请用namespace,除非你是为了满足某种设计模式。如果你 friend 真的用很多,可能有过度耦合的问题
作者: CoNsTaR ((const *))   2016-01-24 23:45:00
static 和 anonymous-namespace 对 function 的效果是一样的吧不喜欢 static 可以改用 namespace
作者: tinlans ( )   2016-01-26 01:34:00
member functions 原本就不会被 new / delete去顾虑这些东西是玩什么玩到走火入魔啊?
作者: fr3ak (fr3@K)   2016-01-27 09:17:00
相关废文 http://goo.gl/ICm7mu希望原 po 只是在练习写 framework QQ
作者: jerohands (这就是人生啊)   2016-01-27 19:54:00
除非你是想用 Private Class Data
作者: tinlans ( )   2016-01-28 00:08:00
如果分开的目的是节省效能,那完全达不到你要的目的。
作者: fr3ak (fr3@K)   2016-01-29 11:37:00
To 原 po. Framework 是基底, 一旦被应用采纳, 要改动的成本通常不小, 尤其是界面. 即便有大量的经验与深厚的技术都不记得能把 framework 做得好.另, 不论是 framework 或 component-based 的 library, 远远不只是 "写 code" 这么单纯. IMHO, 更重要的是 "设计"
作者: CoNsTaR ((const *))   2016-01-29 19:36:00
Java 的阵列是物件,它就是这样的实作方式阵列除了 lenght 以外的成员函式都被放在 java.util.Arrays而阵列这个 class 则由 JVM 动态生成

Links booklink

Contact Us: admin [ a t ] ucptt.com