来自const指针的C ++调用引用函数

时间:2015-10-01 10:22:38

标签: c++ function

我有一个具有此功能的课程

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

然后我有一个const指针:

InputState const * m_pInput;

如何从m_pInput调用该功能?

2 个答案:

答案 0 :(得分:5)

如果您的函数确实没有修改对象本身,请将其标记为const

 key_map const & GetKeyMap() const;

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

答案 1 :(得分:1)

如果:您的成员函数不会改变您添加到其中的对象的状态const限定符:

key_map const & GetKeyMap() const;

其他:使用const_cast,我不建议这样做,因为它会明确地破坏指针的const enss,这可能是第一个原因造成的位:

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