const & final

 
c++ 中的const 和java 中的final 關鍵字都表達了"常量"概念,對於基本類型,const和java是一樣的用法,都表示常量不可改變。但是在對於類的修飾上便有着各自的表述:
final
   在java中聲明class時用final來修飾,則此類被聲明爲不可繼承的類.也就是說它下面不會有子類了。如java.lang.Math. 定義變量和對象是用final來修飾,則表明此變量和句柄不可改變.在函數聲明用final來修飾則沒有效果.
  
const in c++
   用const來修飾一個class
   class Object
   {
   public:
     int m_nCount;
     //函數定義時用const修飾,則表示此函數不會改變這個類的任何變量
     int funC() const
     {
       //m_nCount = 1;//編譯出錯,改變了成員變量m_nCount的值
       return m_nCount;
     }  
     void fun()
     {
         m_nCount = 1;
     }
   }
   int main(int argc, char* argv[])
   {
     const Object obj;//當用const修飾對象變量,則此對象變量調用的函數必須爲const
     //obj.fun();//編譯出錯
     obj.funC(); //編譯通過,
   }
發佈了28 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章