→ ieck:j大 我想問說您寫的 第13行到第67行 可以跟foo()包在一起 02/01 19:45
→ ieck:包在一起 變成一個function嗎? 這樣擺到別的程式中 上面這些 02/01 19:46
→ ieck:第13行到第67行 就不用看起來這麼多~! 02/01 19:46
如果你想要重覆利用這段程式碼,應該是這麼做的:
(1) 用你的開發工具,新增一個 .cpp 檔以及 .h 檔
假設叫做 PoissonRandom.cpp 與 PoissonRandom.h 吧
(2) PoissonRandom.cpp 的內容是這樣:http://ideone.com/ySiZH
請注意這個檔案裡不能有 main()
另外第六行要加個 #include "PoissonRandom.h"
(雖然非必要,但還是加一下,意思會比較明確)
(3) PoissonRandom.h 的內容是這樣:http://ideone.com/qQuUN
那個 #ifndef, #define, #endif 的意義請上網搜尋
而它們在這裡的作用也請搜尋「Include guard」
(4) 當你想在main裡使用 PoissonRandom 這個函式的時候
就是這麼用 http://ideone.com/B1Tlt
只要你的這幾個檔案都在同一個專案裡,應該是可以正常執行的
這麼做就可以把 PoissonRandom 以及相關的東西丟到另一個獨立的檔案
不管這些東西有多長,你的 main 也可以不用在乎它們
這樣最後的 main 程式的檔案看起來也很簡潔(就是上面第(4)點那樣)
把那些東西通通塞進一個函式,是可以做得到的,但並不是一個好主意
因為函式越長,日後想要閱讀、維護、修改,就會越困難
有興趣的話,相關的背景知識,可以看 #1DgrW4a5 (15351) 這篇
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 101.13.12.201
→ diabloevagto:第三點沒東西喔,漏掉了xd 02/01 20:03
貼完之後才發現忘記 header 了...XDDD
→ WJAider:總覺得是因為要急用所以無暇理解物件導向 02/01 20:13
原PO說他是自學的,大概跟class還不太熟
其實我的重點只有:把程式碼通通包成一個大函式,絕不是好主意
※ 編輯: james732 來自: 101.13.12.201 (02/01 20:14)
→ WJAider:不可以隨便排斥阿~ 會吃虧的~~ 02/01 20:13
→ ieck:W大 不好意思啦~ 我非本科系 都是自己學的 所以觀念都有點弱Y 02/01 20:31
→ ieck:自己學的時候 到class那邊 沒有看很多 沒有看的很熟 02/01 20:32
→ ieck:所以可能問的問題 都會人家懷疑沒有自己先想過 XD 抱歉~ 02/01 20:33
→ diabloevagto:我也是自學Orz 02/01 21:10
→ diabloevagto:照著精華區的書單慢慢看... 02/01 21:10
推 ieck: j大 謝謝您的指點 有比較清楚了 ^^ 02/02 15:11