[問題] const 位於 函式前 與 參數後 的意思

看板C_and_CPP作者 (Charlott.HonG)時間7年前 (2017/02/23 00:48), 7年前編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
## 位於參數後 參考自: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

02/23 01:36, , 1F
所以你已經懂了你上篇問的「函式後 const」的意思了嗎?
02/23 01:36, 1F
沒有清楚意思,只是記住要做const版本函式前後要加;然後昨天又看到第三種方式加在 中間;回答的解決方案有懂意思。 上一篇主要想知道什麼時候會觸發const版本,就再發一篇了。

02/23 01:37, , 2F
函式前的話, 那東西是回傳值, 所以就跟回傳值有關
02/23 01:37, 2F
好的,寫在前後是等價的嗎 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

02/23 10:34, , 3F
02/23 10:34, 3F
兩個都是嗎~~ ※ 編輯: hunandy14 (140.127.112.105), 02/23/2017 11:01:55

02/23 12:45, , 4F
你下面舉的 case 都正確, 不過 const T * != T * const
02/23 12:45, 4F
文章代碼(AID): #1OhS3pgl (C_and_CPP)