常函数(const member function)是C++特有的概念,C语言中没有这样的特性。在C++中,常函数是指不修改类的任何非静态成员变量的成员函数。通过在函数声明后面添加const
关键字,可以保证该函数不会修改对象的状态。
组成结构:
结构:返回值 函数名( 形参表 )const {函数体}
只有类的成员函数,才可以使用它,普通的(非成员)函数不可以使用它!
下面是几个常函数的例子:
- 一个简单的常函数,返回一个类的成员变量的值:
class MyClass {
public:
int getNumber() const {
return number;
}
private:
int number;
};
- 一个常函数,用于获取字符串的长度:
class String {
public:
int length() const {
return strlen(data);
}
private:
char *data;
};
- 一个常函数,用于检查链表是否为空:
class LinkedList {
public:
bool isEmpty() const {
return head == nullptr;
}
private:
Node *head;
};
在这些例子中,getNumber
、length
和isEmpty
都是常函数,因为它们承诺不修改类的任何非静态成员变量。这意味着它们可以被const对象调用,而且它们不能修改对象的内部状态。