在C++中,const
关键字主要有以下几个作用:
-
声明常量:使用
const
可以声明一个常量,表示该变量的值在程序运行过程中不能被修改。例如:const int kConstantValue = https://www.yisu.com/ask/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
关键字,可以创建一个只能在常量对象上调用的函数版本。例如: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++中主要用于声明常量、保护数据成员、实现函数重载以及限制指针和引用的修改。这些用法有助于提高代码的安全性和可读性。