我试图理解类的getter和setter函数...
我的问题是:如果我设计一个仅从其类中获取状态的函数(“ getter”函数),为什么将其标记为“ const member function”?我的意思是,如果我的函数设计为不更改其类的任何专有属性,为什么还要使用const成员函数?我不明白,请:(
例如:
int GetValue() {return a_private_variable;}
和
int GetValue() const {return a_private_variable;}
真正的区别是什么?
当您将成员函数声明为时const
,例如
int GetValue() const;
然后您告诉编译器它将不会修改对象中的任何内容。
这也意味着您可以在常量对象上调用成员函数。如果没有const
修饰符,则不能在已定义为的对象上调用它const
。您仍然可以const
在非常量对象上调用成员函数。
还要注意,const
修饰符是成员函数签名的一部分,这意味着您可以使用非const函数重载它。那就是你可以
int GetValue() const;
int GetValue();
在同一个班。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句