c++入门之——const在函数名前面和函数后面的区别
生活随笔
收集整理的這篇文章主要介紹了
c++入门之——const在函数名前面和函数后面的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 class Test(){
2 public:
3 Test(){}
4 const int foo(int a);
5 const int foo(int a) const;
6 };
一、概念
當const在函數名前面的時候修飾的是函數返回值,在函數名后面表示是常成員函數,該函數不能修改對象內的任何成員,只能發生讀操作,不能發生寫操作。
?
二、原理:
我們都知道在調用成員函數的時候編譯器會將對象自身的地址作為隱藏參數傳遞給函數,在const成員函數中,既不能改變this所指向的對象,也不能改變this所保存的地址,this的類型是一個指向const類型對象的const指針。
?
三、Overload時const的作用:
繼續使用上面的test類:
1 int main(int argc, _TCHAR* argv[]) 2 { 3 Test obj; 4 const Test obj1; 5 obj.foo(3);//使用非const函數 6 obj1.foo(3);//使用const函數 7 }在VS中如果對象不是const,則調用非const的函數。
本文轉載自:
https://blog.csdn.net/lichen18848950451/article/details/64123104
轉載于:https://www.cnblogs.com/shaonianpi/p/9906076.html
總結
以上是生活随笔為你收集整理的c++入门之——const在函数名前面和函数后面的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三、Appium-python-UI自动
- 下一篇: 无法获得锁 /var/lib/dpkg/