2006年10月30日 星期一

Const???

const 是一個常數指令,可令指定的變數或函式都有常數的使用規則。

一般常看到的型式就算下列幾個型式
[cpp]
const int A;
void Test(const int);
void Test(void) const;
[/cpp]
1. 定義 A 為常數,不可更動
2. 定義 Test 函式的傳入值為常數,不可做變動
3. 定義 Test 函式使用常數規則

底下就舉一個簡單的例子說明
[cpp]
class TestClass
{
public:
TestClass()
{
X = 10;
}
void A(void)
{
printf("Func A\n");
B();
}
void B(void) const
{
printf("Func B\n");
A(); // Error1
}
void C(void) const
{
printf("Func C\n");
B();
}
void D(void) const
{
X++; // Error2
printf("Func D, X = %d\n", X);
}
void E(const int Y)
{
printf("Func E\n");
Y++; // Error3
}
public:
int X;
};
[/cpp]
Error1 : 因為 B() 為常數函式,只能呼叫同為常數之函式
Error2 : 因為 D() 為常數函式,因此在其領域(scope)中,不可改變任何值,只可讀取
Error3 : 因為 E() 之傳入值 Y 為常數,故其值不可做任何改變