C++|C++类成员函数后面加const有什么作用

【C++|C++类成员函数后面加const有什么作用】C++|C++类成员函数后面加const有什么作用

C++中类成员函数后面加const的作用 , 这个问题频繁出现在面试中 , 从我参加过的几次面试中都被涉及到 , 比如字节 , 2345浏览器等 , 这个问题会非常基础 , 而且很考验C++的基础 。 const的字面意思为常数 , 不变的 , 只读 。

class Rabbit
{
private int m_nTo;
public:
A() : m_nTo(0){   int getToValue()const  {    return m_nTo; //this->m_nTo  ;


如果问你这道题 , 我觉得可以这样回答 。 const加到非静态成员函数后面加const , 表示这个函数隐含传入的this为const指针 , 也就是const指针指向的数据无法改动了 。
当然如果还有补充 , 你可以讲一下如果加到成员函数或者静态成员后面会产生编译错误 , 用这个的场景就是不需要修改的成员函数 。 还有个mutable例外 , 但是我觉得这个不要讲 。
如果你还能有补充 , 我会建议你谈谈Java的final , final的用法在这边其实是差不多的 。 Java里用final来修饰方法标明不允许任何继承类修改它的含义 , 以及效率上的好处 。 类的private方法会被隐式的指定为final方法 。
其实看过的大都数代码 , 一般都不会出现mutable的例外 , 写代码是为了解决问题 , 如果不是技术大拿 , 用了一些不常见的反而引入更多的问题 。 当然这是题外话 , 如果你实在忘记不知道如何去回答这个问题 , 那么我建议你不断理解const , 从const的字面意思来解读 , 你就瞬间回忆起来了 。