在C++中,const
關鍵字主要有以下幾個作用:
聲明常量:使用const
可以聲明一個常量,表示該變量的值在程序運行過程中不能被修改。例如:
const int kConstantValue = 42;
在這里,kConstantValue
是一個常量,其值在編譯時確定并且不能被修改。
保護數據成員:在類中,使用const
可以保護數據成員,防止在類的成員函數中被意外修改。例如:
class MyClass {
public:
void SetValue(int value) {
value_ = value;
}
int GetValue() const {
return value_;
}
private:
int value_;
};
在這個例子中,GetValue()
函數被聲明為const
,這意味著在這個函數內部不能修改類的任何數據成員(除非它們被聲明為mutable
)。
函數重載:const
可以用于函數重載。通過在成員函數的聲明后添加const
關鍵字,可以創(chuàng)建一個只能在常量對象上調用的函數版本。例如:
class MyClass {
public:
void Print() {
std::cout << "Non-const version"<< std::endl;
}
void Print() const {
std::cout << "Const version"<< std::endl;
}
};
在這個例子中,MyClass
類有兩個名為Print
的重載函數,一個是非const
版本,另一個是const
版本。當在非const
對象上調用Print
時,將調用非const
版本;當在const
對象上調用Print
時,將調用const
版本。
指針和引用:const
還可以用于限制指針或引用的修改。例如:
const int* p
:指向常量的指針,不能通過p
修改所指向的值。int* const p
:常量指針,不能修改p
的值,但可以通過p
修改所指向的值。const int* const p
:指向常量的常量指針,既不能修改p
的值,也不能通過p
修改所指向的值。const int& r
:常量引用,不能通過r
修改所引用的值。總之,const
關鍵字在C++中主要用于聲明常量、保護數據成員、實現函數重載以及限制指針和引用的修改。這些用法有助于提高代碼的安全性和可讀性。