03 盡可能使用const

2021-10-03 23:56:52 字數 931 閱讀 6285

1.const出現在星號左邊,表示被指物是常量;如果出現在星號右邊,表示指標自身是常量;如果出現在星號兩邊,表示被指物和指標兩者都是常量

voidf1(

const

int*ip)

;voidf2(

intconst

*p);

//這兩個函式接受的引數型別一樣,都表示乙個指向常量的指標

2.令函式返回乙個常量值

class

rational

;const rational operator*(

const rational&

,const rational &rhs)

;rational a,b,c;

(a*b)

= c;

//錯誤,因為返回的值是const,不能被賦值;加上const也可以避免發生這樣的錯誤

if(a*b = c)

//少寫了乙個=,返回值型別為const將可以避免這個錯誤

3.const成員函式

class

textblock

char

&operator

(std::size_t position)

private

: std::string text;};

textblock tb

("hello"

)cout<;//呼叫char& operator(std::size_t position)

const textblock ctb

("world");

cout<;//呼叫const char& operator(std::size_t position)

請記住

03 盡可能使用 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 greeting const po...

條款03 盡可能使用const

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

條款03 盡可能使用const

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