const修飾符的作用

先看看這個函數:
const Class & function(const Class & c) const;
這其中有三處使用了 const 修飾符,許多同學只是知道 const 是用來修飾變量或者函數的修飾符,使被修飾的對象不能被改變,但不是很清楚 const 在不同位置表示的意思。下面依次介紹上面這個函數中三處 const 的具體意思。
  • 修飾函數返回值
函數的返回值爲 const引用(return c),所以函數聲明與函數定義保持一致,使用 const引用。
  • 修飾形參
函數不修改此引用參數。
  • 修飾成員函數
在成員函數後面加 const 表明這個成員函數爲 const成員函數。在非成員函數中,如果我們不希望改變函數的特徵標,可以將函數參數聲明爲 const 引用,或者指向 const 的指針來解決。但是如果是類的成員函數,它所使用的對象是由方法調用隱式地接受的,故特徵標中沒有該對象,所以之前的方法失效。C++中有一種新的語法——在函數的括號後面加上 const,標誌這是一個 const成員函數,即:該方法不修改調用的對象。這裏有個隱含的意思是:const 限定符將this指針限定爲 const,這樣將不能使用this來修改對象的值。
就像應該儘可能的將 const引用和指針用作函數形參一樣,只要類方法不修改調用的對象,就應將其聲明爲 const。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章