const 放在函數宣告之前,表示這個函數的回傳值是個常數。
const 放在函數宣告之後,表示這個函數不會修改所屬類別的成員變數。
檔案:const.cpp
編譯:g++ -o const const.cpp
執行:./const
#include <iostream>
using namespace std;
class C
{
public:
C() : _val(0) {}
const int* foo(int p)
{
cout << "C.foo(" << p << ") is invoked" << endl;
_val = p;
return &_val;
}
int bar(int p) const
{
int ret = _val + p;
cout << "C.bar(" << p << ") is invoked" << endl;
// _val = p;
return ret;
}
private:
int _val;
};
int main(int argc, char **argv)
{
C c;
const int* c1 = c.foo(10);
// int* c1 = c.foo(10);
c.bar(20);
return 0;
}