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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章