常成員函數在聲明和實現時都要帶 const
關鍵字
常成員函數不能修改對象的數據成員,也不能訪問類中沒有用 const
聲明的非常成員函數。
在任何函數中都不能對常數據成員賦值。對常數據成員初始化,只能通過構造函數的初始化列表。
常對象的數據成員在它的生存期內不會被改變,因此定義常對象時必須對其進行初始化。這里的初始化可以通過初始化列表完成,也可以通過構造函數函數體來完成。
class Person {
public:
string name;
Person() {
name = "mollnn";
}
};
int main() {
const Person person;
}
常對象只能調用它的常成員函數,不能調用其他的普通成員函數。
對於常量成員函數的重載,常量對象調用常量成員函數,正常對象調用非常量成員函數。