C++(const修飾成員函式)
阿新 • • 發佈:2020-09-11
const修飾成員函式
常函式:
- 成員函式後加const後我們稱這個函式為常函式
- 常函式內不可以修改成員屬性
- 成員屬性宣告時加關鍵字mutable後,在常函式中依然可以修改
常物件:
- 宣告物件前加const稱該物件為常物件
- 常物件只能呼叫常函式
示例:
#include <iostream> using namespace std; class Person { public: Person { m_A=0; m_B=0; } //this指標本質是一個指標常量,指標的指向不可修改, //如果想讓指標指向的值也不可以修改,需要宣告常函式 void ShowPerson() const { //const Type* const pointer //this=NULL; //不能修改指標指向 Person *const this; //this->m_A=100; //但是this指標指向的物件資料是可以修改的 //const修飾成員函式,表示指標指向的記憶體空間的資料不能修改,除了mutable修飾的變數 this->m_B; } void MyFunc() const { // m_A=1000; } public: int m_A; mutable int m_B; //可修改,可變的 }; //const修飾物件 常物件 void test01() { const Person person; //常物件 cout<<person.m_A<<endl; //person.m_A=100; //常物件不能修改成員變數的值,但是可以訪問 person.m_B=100; //但是常物件可以修改mutable修飾成員變數 //常物件訪問成員函式 person.MyFunc(); //常物件只能呼叫常函式 } int main(void) { test01(); system("pause"); return 0; }