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的字面意思来解读,你就瞬间回忆起来了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.