看板 Programming 關於我們 聯絡資訊
小弟在寫物件程式的時候 一直有一個問題 一個 class 的 method 如果需要用到 class member 該直接在 method 內存取 member 還是 將 member 當作參數 傳給 method 呢? 我的想法是 class 的 method 直接用 member 的話 感覺似乎比較有內聚力(?) 好像包成 class 也比較有理由 但想到要寫 test 如果把 member 當作參數 傳給 mehtod 這樣測試不同的資料時好像比較好寫 想請教板上各位先進 怎樣的寫法比較恰當呢? 以及理由是..? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.143.43 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1397491034.A.0C9.html
legendmtg:member function當然是直接用member啊 220.134.108.48 04/15 00:12
legendmtg:但是在做成member function之前 220.134.108.48 04/15 00:12
legendmtg:你需要先考慮將function設計成 220.134.108.48 04/15 00:13
legendmtg:non-member non-friend 220.134.108.48 04/15 00:13
legendmtg:Effective C++ 條款23 220.134.108.48 04/15 00:13
感謝指點 可能因為都寫 C# JAVA 一直想著要放在 class 看來我還太淺了 0.0
LPH66:寫 test 這方面你要思考為什麼需要外部指定 123.195.39.85 04/15 01:19
LPH66:一個物件的內部狀態 -- 或許那其實是個參數 123.195.39.85 04/15 01:20
LPH66:那就應該要有適當的 setter 把參數設定好 123.195.39.85 04/15 01:20
LPH66:或許那是某種狀況下的內部狀態, 那你就得要 123.195.39.85 04/15 01:21
LPH66:設法在 test 裡還原出這個狀態 123.195.39.85 04/15 01:21
LPH66:更有可能這個 method 其實是 private 123.195.39.85 04/15 01:21
LPH66:這也跟上面一樣你得還原出這種狀況出來 123.195.39.85 04/15 01:22
我好像忽略了"狀態"這件事情了 謝謝指點
legendmtg:原來這篇不是在C++板...orz 220.134.108.48 04/15 13:27
原本考慮要在 OOAD 發問的 0.0 ※ 編輯: aiueoH (36.231.143.43), 04/16/2014 01:57:54