Re: [問題] 關於程式的邏輯

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間13年前 (2013/04/29 16:33), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Nestarneal (Nestarneal)》之銘言: : 問題(Question): : 其實這問題我不太曉得標題這樣下對不對... : Ogre 引擎有提供我一個設定模型位置的函數叫做 setPosition : 而餵入參數給函數有兩種方法,假設指定位置為 (0, 0, 10) 好了 : 1. setPosition(0, 0, 10) : 2. setPosition( Ogre::Vector3(0, 0, 10) ) 如果你要把位置設定成 (0, 0, 10) 這兩種寫法是沒啥差別的 頂多是第二種還要多打一些字這樣... : 依照書上的說法是:兩種效果一樣,但第二種可以使程式更容易閱讀。 : 我的問題在於這個函數的作用其實從名字就很清楚, : 因此比起第二種作法,我個人覺得第一種給參數的方式會更清楚。 : 所以我個人會比較想用第一種方式寫,但書上是用第二種。 : 所以想請教一般來說,在這種狀況下各位會採取哪種寫法? : 謝謝。 問題在於大部份的使用情況會更複雜 比如說這樣 // Set position near to some_obj setPosition( some_obj.getPosition() + Vector3(10, 0, 0) ); 如果沒有第二個 overloading 的話要怎麼寫咧? // Set position near to some_obj Vector3 pos = some_obj.getPosition(); setPosition(pos.x+10, pos.y, pos.z); 上面那個明顯比較好用吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.3.139

04/29 16:43, , 1F
所以如果普通設定於某個位置,直接給值會比較清楚、
04/29 16:43, 1F

04/29 16:43, , 2F
但如果是類似l大所假設的情況則是用向量給會比較好。
04/29 16:43, 2F

04/29 16:44, , 3F
看狀況來使用就是這個意思囉?
04/29 16:44, 3F

04/29 16:44, , 4F
謝謝各位前輩解答 :)
04/29 16:44, 4F

04/29 17:00, , 5F
不過書上的2. setPosition( Ogre::Vector3(0, 0, 10) )
04/29 17:00, 5F

04/29 17:01, , 6F
在cpp上來說 應該算是 Constructor ? 沒有後續操作就把
04/29 17:01, 6F

04/29 17:01, , 7F
它晾在那邊 ~ 感覺有點恐怖 orz
04/29 17:01, 7F
文章代碼(AID): #1HVZ1S6H (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1HVZ1S6H (C_and_CPP)