2015-10-01 3 views
0

У меня есть класс с этой функциейC++ ссылка вызова функция из константного указателя

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

, то у меня есть константный указатель:

InputState const * m_pInput; 

Как я могу назвать эту функцию из m_pInput?

+1

Это не совсем понятно, что вы спрашиваете о, сделать йо u интересно, как на самом деле * вызвать * функцию-член? Или вам интересно узнать о какой-либо другой ошибке? Пожалуйста, покажите нам, что вы пробовали, и какие возможные ошибки вы получите. –

ответ

5

Если функция действительно не изменяет объект самого, пометить его как const:

key_map const & GetKeyMap() const; 

Если это изменить, не называйте его от константного указателя (или, ну, использовать const_cast, если это абсолютно необходимо).

1

Если: ваша функция член не изменяет состояние объекта, добавить к нему const спецификатор:

key_map const & GetKeyMap() const; 

Else: использование const_cast, который я не рекомендую, так как ей сломается явно const enss вашего указателя, который может быть по причине в первую очередь:

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

это то, что я ищу. –

Смежные вопросы