在C++中,常量成员函数(const member function)是一种特殊的成员函数,它保证在调用时不会修改对象的状态
- 声明:在成员函数的声明和定义后面加上
const
关键字。例如:
class MyClass { public: int getValue() const; // 声明常量成员函数 }; int MyClass::getValue() const { // 定义常量成员函数 return value_; }
- 不修改成员变量:在常量成员函数内部,不能调用那些可能会修改对象状态的成员函数。例如,不能在常量成员函数中调用非const成员函数,因为非const成员函数可能会修改对象的状态。
class MyClass {
public:
int getValue() const;
void setValue(int value);
};
int MyClass::getValue() const {
return value_;
}
void MyClass::setValue(int value) {
value_ = value;
}
- 可以调用其他常量成员函数:在常量成员函数内部,可以调用其他常量成员函数,因为它们都不会修改对象的状态。
class MyClass {
public:
int getValue() const;
int getSum(const MyClass& other) const;
};
int MyClass::getValue() const {
return value_;
}
int MyClass::getSum(const MyClass& other) const {
return value_ + other.value_;
}
- 可以访问常量成员变量:在常量成员函数内部,可以访问类的常量成员变量,但不能修改它们。
class MyClass { public: int getValue() const; int getMaxValue() const; private: int value_; static const int MAX_VALUE = https://www.yisu.com/ask/100;"hljs">int MyClass::getValue() const { return value_; } int MyClass::getMaxValue() const { return MAX_VALUE; }
遵循以上设计原则,可以确保常量成员函数在调用时不会修改对象的状态,从而提高代码的安全性和可读性。