複習 C 之const成員

2021-09-12 20:53:13 字數 949 閱讀 6754

const int num = 0;   // 常量必須要初始化,而且不可修改。

int num = 100;

const int *p = #

在這兩句**後,p可以修改,*p不可以修改。

int num = 100;

int *const p = #

在這兩句**後,*p可以修改,p不可以修改。

所以變數能不能修改看的是宣告時const後面的是什麼。

const int *p;  //修飾的是*p,所以*p不可以修改,但是p可以改,所以p可以不用初始化。

int *const p;  // 這句話會報錯,const修飾的就是p,所以p需要初始化。

如果在類裡面加入了const成員:

在宣告const變數時不能直接初始化,必須在初始化列表中初始化。

引用變數如果要在類中使用,也需要在初始化列表中初始化。

class cperson

};

如果這個類中包含另乙個類的物件,執行對應建構函式初始化,也要在初始化列表中初始化。

class aa

{public:

aa(int a)

{cout<<"aa"《初始化列表執行的順序是根據變數定義的順序執行的。

常函式不能修改類的成員屬性,函式裡面預設的this指標,加入const後就不能修改了。

常量物件可以呼叫常函式。

常量物件不能呼叫普通函式,因為函式想要呼叫物件,傳入指標,函式就可以修改指標所指向的內容,而常量物件是不可修改的,呼叫了就會衝突。

常函式在什麼時候使用?

如果在乙個函式中,需要傳入乙個物件,主函式定義乙個物件,呼叫函式時會拷貝整個物件,比較消耗時間,所以會在函式引數那裡寫為值引用。

為了不讓函式修改物件裡的東西,在值引用的前面加上const。

而引數有const屬性後,它所能使用的類中函式,就得為常函式。

C 之const類成員變數,const成員函式

const修飾類的成員函式 const修飾變數一般有兩種方式 const t a,或者 t const a,這兩者都是一樣的,主要看const位於 的左邊還是右邊,這裡不再贅述,主要來看一下當const修飾類的成員函式時,成員函式有什麼特點。類的成員函式後面加 const,表明這個函式不會對這個類物...

複習 C 之static成員

當類中只有乙個int成員時,這個類的大小為4,但是類中只有乙個靜態int成員時,這個類的大小為1。includeusing namespace std class cperson 只有乙個int成員時 int main includeusing namespace std class cperson...

C 之 const類成員函式

const修飾的變數稱為常變數,不可修改,而const修飾的類成員函式限制為不可修改類的成員,只能讀取。寫法是將const放在函式引數列表後面,而不是放在函式前面或者放入引數列表內 class test 在類體之外定義const函式也需要加const int test getnum const 1....