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 正確...