今天在寫代碼的時候碰到一個const的使用問題,大致如下所示:
參考了小伙伴的文章
總結了一下這種類型的錯誤,參照大家的博客,可以發現這種解釋為:
1)const對象只能調用const函數;
2)如果const函數中不小心修改了類成員或者調用了非常量函數,編譯器會找出這類錯誤。
參考的文章:
https://blog.csdn.net/u014038273/article/details/75776593
順便總結一下const的各種用法
1.const 修飾類的成員變量,表示成員常量,不能被修改。
2.const修飾函數承諾在本函數內部不會修改類內的數據成員,不會調用其它非 const 成員函數。
3.如果 const 構成函數重載,const 對象只能調用 const 函數,非 const 對象優先調用非 const 函數。
4.const 函數只能調用 const 函數。非 const 函數可以調用 const 函數。
5.類體外定義的 const 成員函數,在定義和聲明處都需要 const 修飾符
6.const在*的左邊,則指針指向的變量的值,不可直接通過指針改變(可以通過其他途徑改變);
在*的右邊,則指針的指向不可變。簡記為“左定值,右定向”。
參考的文章:
https://www.cnblogs.com/2018shawn/p/10853607.html