C++:const修飾成員函式
阿新 • • 發佈:2021-02-15
常函式:
- 成員函式後加const,我們稱這個函式為常函式
- 常函式內不可以修改成員屬性
- 成員屬性宣告時加關鍵字mutable後,在常函式中依然可以修改
常物件:
- 宣告物件前加const,稱為常物件
- 常物件只能呼叫常函式
//常函式
class Person
{
public:
//this指標的本質 是指標常量 指標的指向不可以修改
//const Person * const this;
//在成員函式後加const,修飾的是this指標,讓this指向的值也不能修改
Person showPerson() const
{
//m_A = 100;//報錯
this->m_B = 100;
}
void func()
{
}
int m_A;
mutable int m_B;//特殊變數,即使在常函式中,也可以修改這個值
};
void test01()
{
Person p;
p.showPerson();
}
//常物件
void test02()
{
const Person p;//在物件前加const,變為常物件
// p.m_A = 100;報錯
p.m_B = 100;//特殊值,在常物件下也可以修改
//常物件只能呼叫常函式
//p.func()報錯
}