[問題] 關於const的問題

看板C_and_CPP作者 (ddd)時間9年前 (2016/02/23 00:58), 9年前編輯推噓4(405)
留言9則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) no 問題(Question): class Time { public: const Time operator+(const Time &) const; (1) (2) (3) … }; 請問第(3)個const是代表什麼意思? 第(1)個const應該是指回傳的Time是不可以被修改 第(2)則是說 輸入的 Time reference不能被修改 那第(3)是代表什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.200.75 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456160288.A.E09.html ※ 編輯: dedicationsh (140.114.200.75), 02/23/2016 01:01:20

02/23 01:06, , 1F
代表成員函式不會動到資料成員
02/23 01:06, 1F

02/23 01:07, , 2F
第一個 const 是沒用的吧
02/23 01:07, 2F

02/23 01:10, , 3F
可以把它想成是 this 的常數性
02/23 01:10, 3F

02/23 01:10, , 4F
平常的 this 是 T * const, 即我可以透過指標更改物件內容
02/23 01:10, 4F

02/23 01:11, , 5F
加了那個 const 則表示那個成員函式裡面的 this 是
02/23 01:11, 5F

02/23 01:11, , 6F
const T * const, 也就是連透過指標都不能改動
02/23 01:11, 6F

02/23 01:33, , 7F
第一個const會導致回傳值無法成為rvalue reference
02/23 01:33, 7F

02/23 10:13, , 8F
第一個const,在沒有move前(C++03)是有用的
02/23 10:13, 8F

02/23 18:29, , 9F
pure function?
02/23 18:29, 9F
文章代碼(AID): #1MopuWu9 (C_and_CPP)