1. 程式人生 > 其它 >類的常量成員函式

類的常量成員函式

引子:

​ 一個類的例項呼叫成員函式時,成員函式通過一個名為this的額外的隱式引數訪問呼叫它的那個例項。如果某個物件呼叫成員函式,這個物件的地址會用來初始化this。隱形引數this的預設型別是MyClass *const,即可通過this修改物件的值。

正文:

​ 我們在呼叫成員函式時,發現有些函式只讀或只寫,有些函式又讀又寫。對於不需要對物件的值進行更改的函式,我們可以通過更改this的預設型別宣告一種叫做常量成員函式的函式,這種函式不允許修改this指向的物件的值。宣告形式如下: MyClass::MyFun(...) const。即在引數列表之後新增一個const 關鍵字。實際上隱式的把this的型別宣告成了 const Myclass *const

  • 注意隱式的this引數不會出現在函式引數列表中,像如下的程式碼顯式定義自己的this是錯誤的

    std::string Sales_data::isbn(const Sales_data *const this)
    {return this->isbn;}