條款3 盡可能使用const

2021-10-03 19:55:59 字數 1157 閱讀 5387

對於const關鍵字,剛學習程式設計確實會搞的一頭霧水。單看這乙個關鍵字感覺還可以理解,那如果再加上static和define呢?const關鍵字在我們實際落地寫**或者看別人的**時對我們大有裨益,不僅可以幫助我們減少**的風險,對以後別人維護**好處也很大。單挑出乙個條款來講它,應該知道其在程式設計中的重要性。

const,它允許你指定乙個語義約束。什麼意思呢,是說使用const關鍵字編譯器會預設這個變數或者物件是不可更改的,因此也就告訴編譯器和其他程式○在此定義的值不可更改。好處就是大家都遵循這個規則,當看到它時自然就懂了,另外,**執行過程中不會因為其他奇葩原因造成資料被更改,避免了坑人的bug產生。

接下來來看幾句**:

// talk is cheap,show me the code!

char _strgreeting=

"hello"

;char

* _pgreeting = _strgreeting;

// 不是常量指標,也不是常量資料

const

char

* _pcgreeting = _strgreeting;

// 不是常量指標,是常量資料

char

*const _pcgreeting = _strgreeting;

// 是常量指標,不是常量資料

const

char

*const _pcgreeting = _strgreeting;

// 是常量指標,也是常量資料

這裡如何去區分,其實並不難。記住下面一句話即可。

// talk is cheap,show me the code!

void

classfront

(const cwidget* _pwidget)

;void

classbehind

(cwidget const

* _pwidget)

;// 根據上面區分的語句可知,二者表達的意思相同,表示所指物件為常量(不可變)

將const用於成員函式的目的是為了確認該成員函式可用作於const物件身上。這類函式重要的原因有兩個:1)使class介面比較容易被理解,知道哪個函式可以改動物件內容,哪個函式不行2)這種函式使操作「const物件」成為可能。

條款03 盡可能使用const

use const whenever possible.stl迭代器是根據指標塑模出來的,所以迭代器的作用就像個t 指標。宣告迭代器為const就像宣告指標為const一樣,表示這個迭代器不能指向不同的東西,但它所指的東西的值是可以改變的。如果你希望迭代器所指的東西不可被改動,你需要的是const ...

條款三 盡可能使用const

1.定義變數時使用const char greeting hello char p greeting non const pointer,non const data const char p greeting non const pointer,const data char const p gr...

條款21 盡可能使用const

1,只要某值真的保持不變,就應該明確表示出來,這樣一來便可以獲得編譯器的幫助.2,const最具威力的用途用在函式宣告上.3,令函式返回乙個常量值,可以降低client的錯誤,有不至於放棄效率.如 const rational operator const rational lhs,const ra...