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(); //编译通过, } |
const & final
最新推荐文章于 2023-04-16 11:53:54 发布