我看到以下代碼在C++參考: bool operator() (const int& lhs, const int&rhs) const
最後一個const做什麼?函數頭後的const是什麼?
-1
A
回答
1
如果你有一個const對象,你不想調用可以 改變對象的方法,所以你需要讓編譯器的方式知道 哪些方法可以安全地調用。這些方法被稱爲「const 函數」,並且是唯一可以在const對象上調用的函數。請注意,順便說一下,只有成員方法纔有意義,因爲方法的方法是const 。請記住,在C++中,對象的每種方法都會收到一個指向該對象的隱式指針, const方法有效地接收 const這個指針。
這可能是值得的(擾流板:它是)在整個文章,如果你是新的常量性的概念來閱讀。
1
這意味着功能(操作員)不會更改對象。
1
有效地使「this」指針成爲一個const對象的指針。這意味着對象的成員不能在該方法中修改,也不能在非const對象上調用該方法。
相關問題
- 1. const在函數/方法簽名後的含義是什麼?
- 2. int const函數(參數),int函數(const參數)和int函數(參數)const之間的區別是什麼?
- 3. 什麼是'Const'應用函子有用?
- 4. 什麼是char * const *?
- 5. 爲什麼使用const成員函數?
- 6. C++ const成員函數返回一個const指針..但是返回的指針是什麼類型的const?
- 7. 爲什麼strlen的參數是「const」?
- 8. 在C中,「void(* parse_arg_function)(const char *)」函數參數是什麼意思?
- 9. 爲什麼const在靜態函數中是未定義的?
- 10. 什麼是GSL BLAS函數所需的「const gsl_vector_float」?
- 11. 爲什麼const有時是函數簽名的一部分?
- 12. 函數聲明後的「 - >」是什麼?
- 13. 「int * const const * b」是什麼意思?
- 14. 爲什麼有時函數返回一個const或const引用
- 15. 爲什麼在一個類中需要const函數和非const?
- 16. 爲什麼我們需要將const放在GetMax函數的開頭?
- 17. 爲什麼複製構造函數需要是const?
- 18. 爲什麼Stack :: top()是一個const成員函數?
- 19. 爲什麼在通過值傳遞的參數的頭文件的函數聲明中const是不必要的?
- 20. 爲什麼我的重載模板函數提升爲不同的const,然後是非模板函數。
- 21. 什麼是const變量?
- 22. 「const類」是什麼意思?
- 23. 什麼是const TAB =^I pascal?
- 24. const是什麼意思?
- 25. 什麼是char * const argv []?
- 26. 導出const的箭頭函數或基本函數?
- 27. 在TypeScript中的胖箭頭函數之後,「void =()=> {}」的含義是什麼?
- 28. 爲什麼__attribute __((純))函數中的GCC強制參數爲const?
- 29. 爲什麼我們需要將const放在函數頭的結尾,但最初是靜態的?
- 30. 爲什麼我不能在const參數函數/方法中傳遞const對象?
草本薩特的GotW文章也相當不錯。參見[GotW#6](http://gotw.ca/gotw/006.htm)。 – Void