類的const成員變數
阿新 • • 發佈:2018-11-25
在設計類的時候,一個原則就是對於不改變資料成員的成員函式都要在後面加 const,而對於改變資料成員的成員函式不能加 const。
(1)有 const 修飾的成員函式(指 const 放在函式引數表的後面,而不是在函式前面或者引數表內),只能讀取資料成員,不能改變資料成員;沒有 const 修飾的成員函式,對資料成員則是可讀可寫的。
(2)除此之外,在類的成員函式後面加 const 還有什麼好處呢?那就是常量(即 const)物件可以呼叫 const 成員函式,而不能呼叫非const修飾的函式
class
A
{
public
:
void
f()
{
cout<<
"non const"
<<endl;
}
void
f()
const
{
cout<<
" const"
<<endl;
}
};
int
main(
int
argc,
char
**argv)
{
A a;
a.f();
const
A &b=a;
b.f();
const
A *c=&a;
c->f();
A *
const
d=&a;
d->f();
A *
const
e=d;
e->f();
const
A *f=c;
f->f();
return
0;
}
上述執行結果為:non const/ const / const / non const / non const /const