在C++中,const
关键字用于声明一个常量,即其值在初始化后无法被修改。const
可以用于修饰变量、指针、引用、成员函数等。下面详细介绍const
的几种声明方式及其含义。
当const
修饰基本类型时,表示该变量为常量,不能进行修改。例如:
const int a = 10;
a = 20; // 编译错误,不能修改常量的值
const
可以修饰指针,分为指向常量的指针和常量指针。指向常量的指针表示该指针指向的对象不能被修改,例如:
int a = 10;
const int* p1 = &a; // 指向常量的指针
*p1 = 20; // 编译错误,不能通过指向常量的指针修改对象的值
常量指针表示该指针本身是一个常量,即指针的地址不能被修改,例如:
int a = 10;
int b = 20;
int* const p2 = &a; // 常量指针
p2 = &b; // 编译错误,不能修改常量指针的值
const
可以修饰引用,表示该引用所引用的对象不能被修改。例如:
int a = 10;
const int& r = a; // 引用常量
r = 20; // 编译错误,不能通过引用常量修改对象的值
const
可以修饰成员函数,表示该成员函数不会修改类的成员变量。例如:
class MyClass {
public:
int a;
MyClass(int a) : a(a) {}
int getA() const {
return a;
}
void setA(int a) {
this->a = a;
}
};
MyClass obj(10);
cout<< obj.getA()<< endl; // 输出10
obj.setA(20);
cout<< obj.getA()<< endl; // 输出20
在上面的例子中,getA()
函数被声明为const
,表示该函数不会修改类的成员变量,因此可以通过const
引用或指针调用该函数。而setA()
函数没有被声明为const
,因此只能通过非const
引用或指针调用该函数。
总之,const
在C++中有多种声明方式,用于声明常量、指针、引用和成员函数等。通过使用const
,可以提高代码的安全性和可维护性。
领取专属 10元无门槛券
手把手带您无忧上云