C++中函式後面加const修飾
我們定義的類的成員函式中,常常有一些成員函式不改變類的資料成員,也就是說,這些函式是"只讀"函式,而有一些函式要修改類資料成員的值。如果把不改變資料成員的函式都加上const關鍵字進行標識,顯然,可提高程式的可讀性。其實,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖修改資料成員的值,則編譯器按錯誤處理。 const成員函式和const物件 實際上,const成員函式還有另外一項作用,即常量物件相關。對於內建的資料型別,我們可以定義它們的常量,使用者自定義的類也一樣,可以定義它們的常量物件。
特點:
1、非靜態成員函式後面加const(加到非成員函式或靜態成員後面會產生編譯錯誤)
2、表示成員函式隱含傳入的this指標為const指標,決定了在該成員函式中, 任意修改它所在的類的成員的操作都是不允許的(因為隱含了對this指標的const引用);
3、唯一的例外是對於mutable修飾的成員。 加了const的成員函式可以被非const物件和const物件呼叫 但不加const的成員函式只能被非const物件呼叫
char getData() const
{
return this->letter;
}
擴充:c++ 函式前面和後面 使用const 的作用
1.前面使用const 表示返回值為const;
2.後面加 const表示函式不可以修改class的成員
例子:請看這兩個函式 :
const int getValue();和 int getValue2() const;
/*
* FunctionConst.h
*/
#ifndef FUNCTIONCONST_H_
#define FUNCTIONCONST_H_
class FunctionConst {
public:
int value;
FunctionConst();
virtual ~FunctionConst();
const int getValue();
int getValue2() const;
};
#endif /* FUNCTIONCONST_H_ */
/*
* FunctionConst.cpp
*/
#include "FunctionConst.h"
FunctionConst::FunctionConst():value(100) {
// TODO Auto-generated constructor stub
}
FunctionConst::~FunctionConst() {
// TODO Auto-generated destructor stub
}
const int FunctionConst::getValue(){
return value;//返回值是 const, 使用指標時很有用.
}
int FunctionConst::getValue2() const{
//此函式不能修改class FunctionConst的成員函式 value
value = 15;//錯誤的, 因為函式後面加 const
return value;
}
相關文章
- c++方法後面加constC++
- C++函式修飾符總結C++函式
- C++ 中的 const 物件與 const 成員函式C++物件函式
- c++ const 成員函式C++函式
- C++函式名後面有個constC++函式
- python函式修飾器(decorator)Python函式
- const關鍵字在C與C++中修飾變數的區別C++變數
- c語言中const修飾符C語言
- 02_const修飾指標指標
- const修飾符的使用(修飾結構體指標,引用外部的const 變數)結構體指標變數
- Sanic 處理函式修飾器函式
- Lua中呼叫ref和out修飾引數的函式/過載函式函式
- 【C/C++】1.函式傳入指標加const的作用及用法區別C++函式指標
- C#中const 和 readonly 修飾符的用法詳解C#
- [譯]Effective Kotlin系列之探索高階函式中inline修飾符(三)Kotlin函式inline
- Kotlin 主建構函式引數的修飾符Kotlin函式
- C++中strlen函式C++函式
- 引入const成員函式函式
- JS 中函式名後面加與不加括號的區別JS函式
- Solidity語言學習筆記————20、函式修飾符Solid筆記函式
- C++中函式指標與函式物件C++函式指標物件
- C++中const的用法C++
- C++中const小結C++
- C++中const的妙用C++
- C/C++中的constC++
- 裝飾器函式函式
- c++中內建函式C++函式
- C++學習——訪問修飾符C++
- C++繼承時的修飾符C++繼承
- 函式物件、裝飾器、閉包函式函式物件
- Rust中Turbofish之函式後面雙冒號(::)用法Rust函式
- C++中的回撥函式C++函式
- C++中函式呼叫的用法C++函式
- 裝飾器,匿名函式函式
- Python 中級學習之函式裝飾器Python函式
- java中的修飾符Java
- C++函式C++函式
- C++中const的簡單用法C++