C++ const修饰成员函数
时间: 2025-01-30 17:56:36 浏览: 22
C++ const
成员函数概述
在C++中,const
关键字用于修饰成员函数,表明该函数不会修改对象的数据成员。这种机制增强了代码的安全性和可读性[^2]。
声明与定义
当声明一个成员函数为 const
时,在函数原型中的参数列表之后加上 const
即可:
class Example {
public:
int getValue() const;
};
上述例子展示了如何将 getValue()
方法标记为只读方法,意味着此方法承诺不对当前实例(this
)所指向的对象状态做出更改[^3]。
访问权限
对于被标注为 const
的成员函数来说,有如下访问规则:
- 仅能访问同样带有
const
属性的方法; - 能够读取所有类型的成员变量(无论是普通的还是带
const
的),但不允许对其进行写操作,除非这些变量被显式地标记为mutable
[^5];
例如:
#include <iostream>
using namespace std;
class Counter {
private:
mutable int count; // 使用mutable允许在const成员函数内改变count的值
public:
Counter(): count(0){}
void increment() { ++count; }
int getCount() const {
cout << "Inside const member function." << endl;
return count++; // 这里可以修改因为count是mutable类型
}
};
int main(){
Counter c;
cout<<c.getCount()<<endl;
}
这段代码说明了即使是在 getCount()
这样的 const
成员函数内部也可以更新具有 mutable
特性的成员变量 count
[^4]。
构造重载
值得注意的是,两个除了是否含有 const
外其余部分完全一致的成员函数能够共存于同一个类中形成重载版本。具体而言就是说,既存在常规形式也存在附加了 const
后缀的形式。在这种情况下,编译器会依据调用者是不是常量来决定应该选用哪一个实现方式。
相关推荐

















