1. 程式人生 > >函式聲明後面的const用法

函式聲明後面的const用法

通常我們會看到一些函式聲明後面會跟著一個const,這個const是做什麼的呢?

看一下下面的例子,就知道了。直接在編譯前,就會提示下面的兩個錯誤

// test1107.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class aa{
    int num;
public:
    aa(){
        int b =10;
        num = b;
    };
    void out1(){
        cout<<num<<endl;
    }
    void out2() const{
        cout<<num<<endl;
    }
    void out3() const{
        num+=10; //出錯,const函式不能修改其資料成員
        cout<<num<<endl;
    }

};
int _tmain(int argc, _TCHAR* argv[])
{
    aa a1;
    a1.out1();
    a1.out2();
    a1.out3();
    const aa a2;
    a2.out1(); // 錯誤,const的成員 不能訪問非const的函式
    a2.out2();
    a2.out3();
    return 0;
}

在類成員函式的宣告和定義中,

const的函式不能對其資料成員進行修改操作。

const的物件,不能引用非const的成員函式。