看板 C_and_CPP 關於我們 聯絡資訊
## 位於參數後 參考自:https://goo.gl/33SyjS const int & Array::operator[](int i) const {...} ^ 這裡 ## 位於函式名稱前 參考自:https://goo.gl/vhhjWh Point const operator+(Point const &lhs, Point const &rhs){...} ^ 這裡(他會等於 const Point....)? 問題2,此外關於這篇我想再請問,我把它修改成 Point const & operator+(Point const &lhs, Point const &rhs){...} ^ 這樣也可以正常運行,這有什麼區別嗎 (我這樣改沒什麼想法隨意測試的,意外發現居然沒出問題) http://ideone.com/SpINnN 就在我上傳代碼時發現ideone編譯出來的結果出錯了 答案為0 (&回傳參考沒有複製出來被解構了的關係嗎) 怎麼在這我的環境編譯出來的是正確的 答案為2 編譯指令: gcc version 6.2.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project) g++ -Wall -std=c++17 "A0.cpp" -o "A0" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.47.143.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1487782131.A.AAF.html ※ 編輯: hunandy14 (114.47.143.157), 02/23/2017 01:15:25 ※ 編輯: hunandy14 (114.47.143.157), 02/23/2017 01:19:27
LPH66: 所以你已經懂了你上篇問的「函式後 const」的意思了嗎?02/23 01:36
沒有清楚意思,只是記住要做const版本函式前後要加;然後昨天又看到第三種方式加在 中間;回答的解決方案有懂意思。 上一篇主要想知道什麼時候會觸發const版本,就再發一篇了。
LPH66: 函式前的話, 那東西是回傳值, 所以就跟回傳值有關02/23 01:37
好的,寫在前後是等價的嗎 Point const fun() const Point fun() ※ 編輯: hunandy14 (115.82.1.81), 02/23/2017 10:24:57 想到一種可能,寫在最後面 void fun() const{…} 是限制 *this 嗎? ※ 編輯: hunandy14 (115.82.1.81), 02/23/2017 10:28:27
uranusjr: 是 02/23 10:34
兩個都是嗎~~ ※ 編輯: hunandy14 (140.127.112.105), 02/23/2017 11:01:55
uranusjr: 你下面舉的 case 都正確, 不過 const T * != T * const 02/23 12:45