作者:
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 本來就有獨立出來,
所以不需要這樣????
不過查不到確定的資料.......
想請問大家的想法?????
不需要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 函式不知道能不能解釋你的問題
作者:
bibo9901 (function(){})()
2016-01-24 18:16:00你這樣跟non-virtual member function一模一樣啊又何苦分兩邊寫
作者:
firejox (Tangent)
2016-01-24 18:45:00你可以去研究function pointermember funciton 跟這個有關係
拆不拆開效率不會差太多。獨立函數別再另外包class,請用namespace,除非你是為了滿足某種設計模式。如果你 friend 真的用很多,可能有過度耦合的問題
作者:
CoNsTaR ((const *))
2016-01-24 23:45:00static 和 anonymous-namespace 對 function 的效果是一樣的吧不喜歡 static 可以改用 namespace
作者:
tinlans ( )
2016-01-26 01:34:00member functions 原本就不會被 new / delete去顧慮這些東西是玩什麼玩到走火入魔啊?
作者: 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:00To 原 po. Framework 是基底, 一旦被應用採納, 要改動的成本通常不小, 尤其是界面. 即便有大量的經驗與深厚的技術都不記得能把 framework 做得好.另, 不論是 framework 或 component-based 的 library, 遠遠不只是 "寫 code" 這麼單純. IMHO, 更重要的是 "設計"
作者:
CoNsTaR ((const *))
2016-01-29 19:36:00Java 的陣列是物件,它就是這樣的實作方式陣列除了 lenght 以外的成員函式都被放在 java.util.Arrays而陣列這個 class 則由 JVM 動態生成