inline、const、mutable、this、static
在類定義中實現成員函式 incline
成員函式末尾的 const(宣告和實現中都要加上 const)
作用:告訴系統,這個成員函式不會修改該物件裡任何成員變數的值等等,也就是說,這個成員函式不會修改類 Time的任何狀態。===> 也叫做常量成員函式
mutable(不穩定、容易改變)===> 突破 const 限制
使用 mutable 修飾一個成員變數 ===> 說明這個成員變數永遠處於可以被修改狀態,即便是在 const 修飾的成員函式中,也可以修改
返回自身物件的引用、this
// int m
// int& n = m
// n 相當於 m 的一個綽號,對 n 的操作就是對 m 的操作
Time& Time::getTimeObject(int tmpHour){
Hour += tmpHour;
return *this; // 把物件自己給返回去了
}
呼叫
// 如何理解這個 this
// 咱們呼叫成員函式時,編譯器負責把這個物件的地址(&myTime) 傳遞給這個成員函式中的一個隱藏的 tihs 形參
// this 指標只能在成員函式中使用,全域性函式以及靜態函式都不能使用 this指標
// a. 在普通成員函式中,this是一個指向非 const 物件的 const 指標(型別為 Time,那麼 this 就是 Time* const this),表示 this 只能指向當前 Time 物件
// b. 在 const 成員函式中,this是一個指向 const 物件的 const 指標(型別為 Time,那麼 this 就是 const Time* const this)
// 注意:第一個 const:代表值不能改,第二個 const:代表只能指向這個物件
Time myTime;
Time& time = myTime.getTimeObject(11);
static成員
呼叫方式:
- 類名::成員變數名
- 類名::成員函式名
如何定義靜態成員變數(分配記憶體):一般會在某個.cpp 檔案中開頭定義這個靜態成員變數,這樣就能保證在呼叫任何函式之前,這個靜態成員變數已經成功初始化了