C 之常物件,常物件成員

2021-08-26 14:40:48 字數 914 閱讀 2959

一.常物件:

1.常物件定義:time  const  t1(1,2,3)或者const time t1;

2.常物件不能呼叫該物件的非const型的成員函式(系統主動呼叫的構造析構函式除外);

3.常成員函式的宣告方法,後面加個const即可: void get_time() const;

4.常物件不能修改物件內的資料成員,如果要修改,只能將資料成員宣告為mutable:

mutable int count;

這樣就可以用宣告為const的成員函式來修改它的值;

二.常資料成員:

1.常資料成員的定義:const  int  a; 或者 int  const  a;

2.只能通過建構函式的引數初始化表對常資料成員進行初始化,不能採用在建構函式中對常資料成員賦初值的方法;

class time

;錯誤建構函式:

time::time(int h, int t)

正確方案:

time::time(int h):hour(h) // 採用部分初始化列表定義常資料成員,正確

或者time::time(int h):hour(h),tset(t){} // 採用全部初始化列表定義

三.常成員函式:

1.常成員函式不能呼叫另乙個非const成員函式;

2.常成員函式呼叫資料成員情況:

資料成員

非const成員函式

const成員函式

非const的資料成員

可以引用,也可以改變值

可以引用,但不可以改變值

const資料成員

可以引用,但不可以改變值

可以引用,但不可以改變值

const物件的資料成員

不允許引用和改變值

可以引用,但不可以改變值

C 之常物件,常成員物件,常成員函式,常指標

一 常物件 time const t1 12,23,23 其中所有的值不能被修改。通過該物件只能呼叫它的常成員函式,而不能呼叫它的普通成員函式。以防普通成員函式會修改資料成員的值。但如果一定要修改常物件資料成員的值,可以將該資料成員宣告為mutable,如 mutable int count 把co...

常成員,常函式,常物件

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

C 之常物件 常成員變數與常成員函式詳解

一 常物件說明 常物件是指物件的資料成員的值在物件被呼叫時不能被改變。常物件必須進行初始化,且 能被更新。不能通過常物件呼叫普通成員函式,但是可以通過普通物件呼叫常成員函式。常物件只能呼叫常成員函式。常物件的宣告如下 const 類名 物件名 類名 const 物件名 兩種宣告完全一樣沒有任何區別。...