條款3 盡可能的使用const

2022-01-22 10:06:13 字數 829 閱讀 2253

const成員函式的一般好處有:

使用的過程中應該在const與non const成員函式之間避免**重複:

class

textblock

char & operator

(std::size_t position)

private

: std::

string

text;

}

這樣做可以但是會導致你**較為臃腫,做了很多的重複性的工作,事實上可以使用const——cast以及static_cast來實現如下的工作

這個就叫做所謂的常量性的轉除,用乙個operator去掉用另外乙個operator

一般來說,用non-const來呼叫其const兄弟一般是一種安全的做法:

const

char & operator(std::size_t position)const

char &operator

上面這一段可以做一些解釋,第二個non-const語句塊我們打算讓non-const operator呼叫他的const兄弟,但是non-const操作符的後面如果只是單純的呼叫operator那麼會

導致iwuxian遞迴的呼叫自己,所以應該加上static_cast來將*this先進行轉型。所以這裡總共是有兩次的轉型。第一次是將*this從textblocks轉型到const textblocks,就是為*this

來新增上const,之後再為返回的const operator中將const來移除。

還有一點應該注意的是,絕對不要用const版本來呼叫non-const版本。

條款3 盡可能使用const

對於const關鍵字,剛學習程式設計確實會搞的一頭霧水。單看這乙個關鍵字感覺還可以理解,那如果再加上static和define呢?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...