頂層const的示例 -开发者知识库

頂層const的示例 -开发者知识库,第1张

1.

頂層const作用於對象本身

const int ci = 42; //不能改變ci,const是頂層的

int i = ci; //正確:當拷貝ci時,忽略了它的頂層const

int *const p = &i; //const是頂層的,不能給p賦值

*p = 0; //正確:通過p改變對象的內容是允許的,現在i變成了0


2.

void fcn(const int i) {/*fcn能夠讀取i,但是不能向i寫值*/}

void fcn(int i ){} //錯誤:重復定義了fcn(int)

3.

形參的初始化方式和變量的初始化方式是一樣的。我們可以使用非常量初始化一個底層const對象,但是反過來不行;同時一個普通的引用必須用同類型的對象初始化。

int i = 42;

const int*cp = &i; //正確:但是cp不能改變i

const int &r = i; //正確:但是r不能改變i

const int &r2 = 42; //正確

int *p = cp; //錯誤:p的類型和cp的類型不匹配

int &r3 = r; //錯誤:r3的類型和r的類型不匹配

int &r4 = 42; //錯誤:不能用字面值初始化一個非常量引用

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复