What is the meaning of a const at end of a member function?(成员函数末尾的 const 是什么意思?)
问题描述
C++ 中的 const 关键字写在成员函数的末尾(参数列表之后)究竟是什么意思?
What exactly does the const keyword in C++ mean when it's written at the end of a member function (after the argument list)?
推荐答案
这意味着 *this 是该成员函数内部的 const ,即它不会改变对象.
It means that *this is const inside that member function, i.e. it doesn't alter the object.
关键字this 是prvalue 表达式,其值是调用函数的对象的地址.X 类的成员函数中this 的类型是X*.如果成员函数声明为const,则this 的类型为const X*.[第 9.3.2 节 §1]
The keyword
thisis a prvalue expression whose value is the address of the object for which the function is called. The type ofthisin a member function of a classXisX*. If the member function is declaredconst, the type ofthisisconst X*. [section 9.3.2 §1]
在一个const成员函数中,调用该函数的对象是通过一个const访问路径访问的;因此,const 成员函数不得修改对象及其非静态数据成员.[第 9.3.2 节 §2]
In a const member function, the object for which the function is called is accessed through a const access path; therefore, a const member function shall not modify the object and its non-static data members. [section 9.3.2 §2]
这意味着可以在类的 const 实例上调用 const 成员函数.不能在 [1]const 对象上调用非 const 成员函数,因为它可能会尝试修改它.
This means that a const member function can be called on a const instance of the class. A non-const member function can't be called on [1]a const object, since it could potentially try to modify it.
<支持>[1] 注意:临时不是 const 对象,除非它是 const 类型.
[1] Note: a temporary is not a const object unless it's of const type.
这篇关于成员函数末尾的 const 是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:成员函数末尾的 const 是什么意思?
基础教程推荐
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 我有静态或动态 boost 库吗? 2021-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 常量变量在标题中不起作用 2021-01-01
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
