c++从const指针调用引用函数

C++ call reference function from a const pointer

本文关键字:引用 函数 调用 指针 const c++      更新时间:2023-10-16

我有一个类,这个函数

class InputState
{
   public:
     key_map const & GetKeyMap();
}

那么我有一个const指针:

InputState const * m_pInput;

如何从m_pInput调用该函数?

如果您的函数确实不修改对象本身,则将其标记为const:

 key_map const & GetKeyMap() const;

如果它做了修改,不要从const指针调用它(或者,如果绝对需要,使用const_cast)。

如果:你的成员函数不改变对象的状态,你添加const限定符:

key_map const & GetKeyMap() const;

Else:使用const_cast,我不建议这样做,因为它会显式地破坏指针的const属性,这可能首先有一个原因:

const_cast<InputState*>(m_pInput)->GetKeyMap();