條款03 盡可能使用const

2021-07-01 20:49:42 字數 593 閱讀 7103

use const whenever possible.

stl迭代器是根據指標塑模出來的,所以迭代器的作用就像個t*指標。宣告迭代器為const就像宣告指標為const一樣,表示這個迭代器不能指向不同的東西,但它所指的東西的值是可以改變的。

如果你希望迭代器所指的東西不可被改動,你需要的是const_iterator。

const最具威力的用法是面對函式宣告時的應用。在乙個函式宣告式內,const可以和函式返回值、各引數、函式自身(如果是成員函式)產生關聯。

有理數的operator*的宣告式:

class rational 

rational a, b, c;

if (a * b = c) ... // 在a * b的結果上呼叫operator=

將operator*的返回值宣告為const可以預防上面這個的意外錯誤。

將const實施於成員函式的目的,是為了確認該成員函式只可作用於const物件身上。

乙個c++的重要特性:兩個成員函式如果只是常量性不同,可以被過載。

未完待續

條款03 盡可能使用const

被指物是常量時,const寫在型別前或型別後都行 const widget buf widget const buf stl迭代器是以指標為根據塑模出來,所以迭代器的作用就像個t 指標。std vectorv const std vector iterator it v.begin it 10 正確...

條款03 盡可能使用const

總結關鍵字const出現在星號左邊,表示被指物是常量 如果出現在出現在星號右邊,表示指標自身是常量 如果出現在星號兩邊,表示被指物和指標兩者都是常量。const char p greeting 指標所指物為常量 char const p greeting 指標是常量stl迭代器是以指標為根據塑模出來...

條款03 盡可能使用const

1 為什麼盡可能使用const?const指定語義約束,即某個物件不應該被改變,並且編譯器會強制執行這條約束。如果某個物件確實不應該被改變,那麼我們就應該將其生命為const,這樣一來,如果違背了這個約束,編譯器將幫助我們檢測出來。2 界定常量指標和指向常量的指標 const type pt 1 t...