在C++中,常量成員函數(shù)(const member function)是一種特殊的成員函數(shù),它不能修改類的任何成員變量(除了那些被聲明為mutable
的變量)。常量成員函數(shù)可以用于常量和非常量對象。
要實(shí)現(xiàn)一個(gè)常量成員函數(shù),只需在函數(shù)聲明和定義的末尾添加const
關(guān)鍵字即可。下面是一個(gè)簡單的示例:
#include <iostream>
class MyClass {
public:
// 構(gòu)造函數(shù)
MyClass(int x) : value(x) {}
// 常量成員函數(shù),用于輸出成員變量value
void printValue() const {
std::cout << "Value: " << value << std::endl;
}
private:
int value;
};
int main() {
MyClass obj(42);
// 調(diào)用非常量成員函數(shù)
obj.printValue(); // 輸出:Value: 42
// 調(diào)用常量成員函數(shù)
const MyClass constObj(84);
constObj.printValue(); // 輸出:Value: 84
return 0;
}
在這個(gè)示例中,我們定義了一個(gè)名為MyClass
的類,其中包含一個(gè)私有成員變量value
和一個(gè)常量成員函數(shù)printValue()
。printValue()
函數(shù)用于輸出value
的值,由于它沒有修改類的任何成員變量,因此被聲明為常量成員函數(shù)。在main()
函數(shù)中,我們創(chuàng)建了一個(gè)非常量對象obj
和一個(gè)常量對象constObj
,并分別調(diào)用了它們的printValue()
函數(shù)。