後面加個const 表明該函數不會改名成員函數的值!該函數可以被常量對象訪問(const)。 注意 加了const 與不加const的函數是兩個不同的函數! 用個例子說明其區別: #include <iostream> class A { public: void empty() { std::cout<<"call empty()\n"; } void empty() const { std::cout<<"call empty() const \n"; } }; void main() { const A a; //a常量對象,其只能訪問常量函數 a.empty(); //訪問 empty() const; 如果A中沒有 empty() const 函數,編譯器報錯 A b; //非常量對象 b.empty(); //訪問 empty() }
virtual void print() const = 0; (1)=0說明它是純虛函數 (2)const表明不能修改其數據成員
自己記錄一下:const 和 =0 沒有關係,要分開理解 成員函數後面用 const 修飾,通俗的理解就是在這個函數內不能修改類的成員變量,除非那個成員變量是 mutable 的 =0表示這個成員函數是純虛函數,也就是它可以沒有定義,只有接口,由它的繼承類具體定義它的行爲,當然,你也可以給它定義缺省的函數體 一個類裏如果包含 =0 的純虛函數,那麼這個類就是一個抽象類,它不能具體實例化(不能創建它的對象),而只能由它去派生子類