考慮下述的程式碼:
const Animal pig = Animal("Spot");
pig.eat();
通常編譯類似的程式碼時,編譯器會說明第二行會有錯誤,理由是因為eat()沒有任何引數不能保證不會修改呼叫他的物件,因為此物件是const不能被修改的,於是在c++的語法中就產生了一個新的語法就是在函數括號後放置關鍵字const,也就是說eat()的宣告應該如下:
void eat() const; //這樣宣告函數是告訴編譯器保證不會修改到呼叫他的物件
而函數的定義應該如下:
void Animal::eat() const
沒有留言:
張貼留言