可能重复:
成员函数结束时const的含义是什么?
如果我的类定义如下:
type CLASS::FUNCTION(int, const char*) const
Run Code Online (Sandbox Code Playgroud)
结束括号后的最后一个const是什么意思,以及如何将它应用于函数:
type CLASS::FUNCTION(int var1, const char* var2) {
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*Jon 30
这意味着此函数不会修改对象的可观察状态.
在编译器术语中,它意味着您不能在const对象(或const引用或const指针)上调用函数,除非该函数也被声明为const.此外,声明const的方法不允许调用不是的方法.
更新:正如Aasmund完全正确添加的那样,const允许方法更改声明为的成员的值mutable.
例如,有一个只读操作(例如int CalculateSomeValue() const)缓存其结果可能是有意义的,因为它的调用成本很高.在这种情况下,您需要有一个mutable成员来写入缓存的结果.
我为遗漏道歉,我试图快速而且重点突出.:)
const函数末尾的 意味着它不会修改调用它的对象的状态(即this)。
type CLASS::FUNCTION(int, const char*) const ; // Method Signature
type CLASS::FUNCTION(int var1, const char* var2) const {
}
Run Code Online (Sandbox Code Playgroud)
const您还需要在方法定义末尾提及关键字。const另请注意,只有成员函数的末尾才能包含此非修饰符关键字。
| 归档时间: |
|
| 查看次数: |
17831 次 |
| 最近记录: |