作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [問題] 關於程式的邏輯
時間Mon Apr 29 16:33:28 2013
※ 引述《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
推 Nestarneal:所以如果普通設定於某個位置,直接給值會比較清楚、 04/29 16:43
→ Nestarneal:但如果是類似l大所假設的情況則是用向量給會比較好。 04/29 16:43
→ Nestarneal:看狀況來使用就是這個意思囉? 04/29 16:44
→ Nestarneal:謝謝各位前輩解答 :) 04/29 16:44
推 cuteclare:不過書上的2. setPosition( Ogre::Vector3(0, 0, 10) ) 04/29 17:00
→ cuteclare:在cpp上來說 應該算是 Constructor ? 沒有後續操作就把 04/29 17:01
→ cuteclare:它晾在那邊 ~ 感覺有點恐怖 orz 04/29 17:01