類物件成員函式的const增強
類物件成員函式的const增強c++語言的2.0版為const配置了若干新的應用,在c++的早期版本中,成員函式的呼叫可能改變const類物件的值。這肯定是個問題了。如果我們不允許使用const類的成員函式,我們還要const物件幹什麼用,為了讓語言成為完備的,在2.0版本後引入了const成員函式,它的乙個作用就是讓const物件能夠呼叫的成員函式。編譯程式保證const成員函式不改變成員函式內使用的物件內部資料的值,而且還保證了const類的物件能夠使用const型別的函式。下面我們來看一段**:
struct s
g(int aa) const //請注意,這個函式並沒有改變作為類成員資料的a的值
//h(int aa) const //這一句是錯誤的,因為它試圖改變類的成員資料a的值
void g()
{
s o1;如果我們把一些注釋掉的語句恢復過來,我們會發現,這樣的程式是不能通過編譯的。因為它們不是試圖呼叫const型別物件中的非const型別函式,就是在const型別成員函式中試圖改變類成員資料的值。const s o2; //請注意,這裡的是乙個const型別的物件;
o1.a = 1;
// o2.a = 2;
o1.f(3);
//在const型別物件中試圖呼叫非const型別的成員函式;
o1.g(5);
o2.g(6);
const物件與const成員函式
const物件只能呼叫const成員函式 includeusing namespace std class a public void fun const cout const 成員函式 但是如果把第以1個fun注釋掉就會出錯 error c2662 a fun 不能將 this 指標從 const...
C 類和物件 const修飾成員函式
常函式 常物件 include using namespace std class person mutable int m age 特殊變數,加關鍵字mutable,即使在常函式中也可以修改這個值 void test1 intmain include using namespace std cla...
類中的常量, const物件和成員函式
常量 起初讀者可能認為合乎邏輯的選擇是把乙個const放在類裡,但這不會產生預期的結果。在乙個類裡,const 恢復它在c中的一部分意思。它在每個類物件裡分配儲存並代表乙個值,這個值一旦被初始化以後就不能改變。在乙個類裡使用const的意思是 在這個物件宣告期內,這個是乙個常量 然而,對這個常量來講...