C 中的常成員和常物件函式

2021-08-22 13:35:39 字數 699 閱讀 2058

1、建立物件時新增const關鍵字,這個物件就不可再修改,就有了常屬性,就意味著整個物件中的所有東西都不能修改。

我們知道被const修飾的物件一旦被初始化了就不可改變,來看乙個例子:

#include #include using namespace std;

class dog

void show_obj(void) }

};int main()

總結:1、被const修飾的物件,那麼這個物件就是常物件,這時呼叫成員函式就不可以了,因為成員函式拿到了this指標,就有可能會篡改,所以必須給成員函式必須在後面加上const,此過程類似與發誓!

2、在函式體之前加上const,那麼這給函式就變成了常函式,常物件出除了可以呼叫發誓後的成員函式,還可以呼叫常函式,因為常函式肯定不會修改他的東西。

3、加了const修飾的函式也就是常函式,會跟普通函式過載,並不會衝突。

4、在類中如果有成員需要被修改,但是此時已經被const修飾,我們可以為其添關鍵字mutable,這樣即便是常物件呼叫了常函式,我們也是可以修改其成員的。

最後:不論在c或者c++中const這個關鍵字都是很有用的,為規定不能修改的變數、物件新增const屬性,有利於保護資料,保護物件,所以在編寫**時,要注意新增const,這跟void是乙個道理,雖然可以不加,但是加了更能體現思路,所以注意使用。

c 常成員函式 和 常物件

先明確幾個概念 1.常物件只能呼叫常成員函式。2.普通物件可以呼叫全部成員函式。3.當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。4.當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向這個成...

c 常成員函式 和 常物件

先明確幾個概念 1.常物件只能呼叫常成員函式。2.普通物件可以呼叫全部成員函式。3.當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。4.當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向這個成...

常成員,常函式,常物件

知識點1.常物件中的任何型別的資料成員 無論私有還是公有 的值都不能被改變。知識點2.常物件能呼叫的 1.公有的常成員函式 2.建構函式 3.公有的靜態函式 知識點3.常物件與常成員函式只有同時存在才都有意義 知識點4.普通物件既可以呼叫常成員函式,也可以呼叫非常成員函式 知識點5.常成員函式不能更...