C_and_CPP 板


LINE

最近在思考一個問題, 就是 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 本來就有獨立出來, 所以不需要這樣???? 不過查不到確定的資料....... 想請問大家的想法????? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.35.163.53
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1453608256.A.72E.html
1F:→ x000032001: 不需要member 那就static func啊 甚至給他namespace 01/24 12:22
2F:→ x000032001: 就好也不用塞進class了 01/24 12:22
那~~ 有需要刻意去拆開嗎 這對效能有幫助嗎??? 還是沒幫助? 只是多此一舉????
3F:→ Caesar08: 看完不知道你在說甚麼東西 另外中間function那段 01/24 13:13
4F:→ Caesar08: 你要function new delete甚麼東西? 01/24 13:13
5F:→ Caesar08: 不用"動"到data member,那你寫const就好 01/24 13:16
6F:→ Caesar08: 不用"用"到data member,那你就參考一樓的作法 01/24 13:16
抱歉喔 我寫得太簡單了 例如有個 class class A { int abc; int Add( int a, int b ); }; 我把它拆成 class data { int abc; }; class func { int Add( data &a, int a, int b ); }; 這樣子, class func 在全部的程式中, 大家都可以共用一個就好了, 要new delete 時, 就只需要 new delete data, 那如果是原本的做法 class A, new delete 時, 還必須處理 Add(); 這樣拆開來, 是否會比較省資源和效能???? ※ 編輯: yhn0tgb60 (218.35.163.53), 01/24/2016 13:31:04
7F:推 Clangpp: 其實這就是一種design pattern阿XD 01/24 13:34
8F:推 Clangpp: 不用 上面有說了 你用namespace就好 01/24 13:37
9F:→ Clangpp: 然後 effective C++ item 23 寧以non-member non-friend 01/24 13:38
10F:→ Clangpp: 取代member 函式不知道能不能解釋你的問題 01/24 13:39
11F:→ Caesar08: 不會,而且你這樣func需要是data的friend 01/24 13:43
12F:→ Caesar08: 除非逼不得以,否則friend還是少用為妙 01/24 13:44
13F:→ Caesar08: 不過聽我這樣說,還不如參考standard C++是怎麼說的 01/24 13:45
14F:→ Caesar08: https://isocpp.org/wiki/faq/friends 01/24 13:45
其實我 frined 用很多...... 因為我全部的 class 都把 建構式和解構式 藏起了 只有相關的 factory 才能 new delete 它........ 然後 factory 也都是單一物件..... 但是又聽說 static 不適合太多 所以就用一個 static class, 全部的 factory 只有 那個 class 可以 new.....
15F:→ bibo9901: 你這樣跟non-virtual member function一模一樣啊 01/24 18:16
16F:→ bibo9901: 又何苦分兩邊寫 01/24 18:16
17F:→ firejox: 你可以去研究function pointer 01/24 18:45
18F:→ firejox: member funciton 跟這個有關係 01/24 18:46
19F:推 ronin728: 拆不拆開效率不會差太多。獨立函數別再另外包class,請 01/24 18:59
20F:→ ronin728: 用namespace,除非你是為了滿足某種設計模式。 01/24 18:59
21F:→ ronin728: 如果你 friend 真的用很多,可能有過度耦合的問題 01/24 19:01
22F:推 CoNsTaR: static 和 anonymous-namespace 對 function 的效果是一 01/24 23:45
23F:→ CoNsTaR: 樣的吧 01/24 23:46
24F:→ CoNsTaR: 不喜歡 static 可以改用 namespace 01/24 23:46
25F:→ tinlans: member functions 原本就不會被 new / delete 01/26 01:34
26F:→ tinlans: 去顧慮這些東西是玩什麼玩到走火入魔啊? 01/26 01:35
在寫自己的framwork XD
27F:推 fr3ak: 相關廢文 http://goo.gl/ICm7mu 01/27 09:17
28F:→ fr3ak: 希望原 po 只是在練習寫 framework QQ 01/27 09:19
你有什麼悲情的故事嗎 關於寫framework XD
29F:推 jerohands: 除非你是想用 Private Class Data 01/27 19:54
30F:→ tinlans: 如果分開的目的是節省效能,那完全達不到你要的目的。 01/28 00:08
31F:推 fr3ak: To 原 po. Framework 是基底, 一旦被應用採納, 要改動的成 01/29 11:37
32F:→ fr3ak: 本通常不小, 尤其是界面. 即便有大量的經驗與深厚的技術都 01/29 11:37
33F:→ fr3ak: 不記得能把 framework 做得好. 01/29 11:37
34F:→ fr3ak: 另, 不論是 framework 或 component-based 的 library, 遠 01/29 11:40
35F:→ fr3ak: 遠不只是 "寫 code" 這麼單純. IMHO, 更重要的是 "設計" 01/29 11:40
是的 這是一定的 所以我寫 framework 是寫自己開心的和當作品用 而且自己寫 framework 時, 會增加思考很多事情, 可以學到很多, 工作上 我一定找現成的 而且有一定的市場使用率的 來使用 ※ 編輯: yhn0tgb60 (220.132.169.16), 01/29/2016 18:14:16
36F:推 CoNsTaR: Java 的陣列是物件,它就是這樣的實作方式 01/29 19:36
37F:→ CoNsTaR: 陣列除了 lenght 以外的成員函式都被放在 java.util.Arra 01/29 19:36
38F:→ CoNsTaR: ys 01/29 19:36
39F:→ CoNsTaR: 而陣列這個 class 則由 JVM 動態生成 01/29 19:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP