作者dedicationsh (ddd)
看板C_and_CPP
標題[問題] 關於const的問題
時間Tue Feb 23 00:58:04 2016
開發平台(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
推 CoNsTaR: 代表成員函式不會動到資料成員 02/23 01:06
→ CoNsTaR: 第一個 const 是沒用的吧 02/23 01:07
推 LPH66: 可以把它想成是 this 的常數性 02/23 01:10
→ LPH66: 平常的 this 是 T * const, 即我可以透過指標更改物件內容 02/23 01:10
→ LPH66: 加了那個 const 則表示那個成員函式裡面的 this 是 02/23 01:11
→ LPH66: const T * const, 也就是連透過指標都不能改動 02/23 01:11
推 littleshan: 第一個const會導致回傳值無法成為rvalue reference 02/23 01:33
→ Caesar08: 第一個const,在沒有move前(C++03)是有用的 02/23 10:13
推 Yshuan: pure function? 02/23 18:29