你覺得要嚴格使用const
每個值將不會被改變的時間或通過參數爲指針,只有當數據將被修改,這一點很重要?正確的參數爲const或操作數
我想正確地做事,但如果作爲參數傳遞的struct
尺寸很大,難道您不想傳遞地址而不是複製數據嗎?通常它好像剛剛宣佈struct
參數作爲一個操作數是最具功能性。
//line1 and line2 unchanged in intersect function
v3f intersect(const line_struct line1, const line_struct line2);
//"right" method? Would prefer this:
v3f intersect2(line_struct &line1, line_struct &line2);
兩個第一原型是不等價的。在第二個函數中,您可以修改函數體中的參數。 – ouah 2012-02-23 21:40:26
根據編譯器的不同,將const應用於按值傳遞參數可能有助於優化。編譯器應該將const限定符解釋爲不允許寫入參數的語句。 – Throwback1986 2012-02-23 21:45:22
@ouah:你說得對,補充說他們在外部行爲上是相同的。 – 2012-02-23 21:47:27