在C++中,常量成員函數(shù)(const member function)是一種特殊類(lèi)型的成員函數(shù),它不能修改調(diào)用它的對(duì)象的狀態(tài)
要聲明一個(gè)常量成員函數(shù),只需在函數(shù)聲明和定義的尾部添加const
關(guān)鍵字。以下是一個(gè)簡(jiǎn)單的示例:
#include <iostream>
class MyClass {
public:
// 普通成員函數(shù)
void normalFunction() {
std::cout << "This is a normal function." << std::endl;
}
// 常量成員函數(shù)
void constantFunction() const {
std::cout << "This is a constant function." << std::endl;
}
};
int main() {
MyClass obj;
// 調(diào)用普通成員函數(shù)
obj.normalFunction();
// 調(diào)用常量成員函數(shù)
obj.constantFunction();
return 0;
}
在這個(gè)例子中,我們定義了一個(gè)名為MyClass
的類(lèi),其中包含兩個(gè)成員函數(shù):normalFunction()
和constantFunction()
。normalFunction()
是一個(gè)普通成員函數(shù),它可以修改對(duì)象的狀態(tài)。而constantFunction()
是一個(gè)常量成員函數(shù),它不能修改對(duì)象的狀態(tài)。
在main()
函數(shù)中,我們創(chuàng)建了一個(gè)MyClass
的對(duì)象obj
,然后分別調(diào)用了這兩個(gè)成員函數(shù)。注意,我們不能使用常量對(duì)象調(diào)用非常量成員函數(shù),因?yàn)榉浅A砍蓡T函數(shù)可能會(huì)修改對(duì)象的狀態(tài),從而違反常量的定義。但是,我們可以使用常量對(duì)象調(diào)用常量成員函數(shù),因?yàn)槌A砍蓡T函數(shù)不會(huì)修改對(duì)象的狀態(tài)。