I have this error, when I try to use a pointer to member function to a different class.
Error : sources/common/OurMenu.cpp: 
  In member function ‘void OurMenu::menuNavigation()’: sources/common/OurMenu.cpp:336:36: error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in 
  ‘((OurMenu*)this)->OurMenu::_buttons.std::vector::at >(((std::vector::size_type)((OurMenu*)this)->OurMenu::_actualLine))->Button::doIt (...)’, e.g. ‘(... ->* ((OurMenu*)this)->OurMenu::_buttons.std::vector::at >(((std::vector::size_type)((OurMenu*)this)->OurMenu::_actualLine))->Button::doIt) (...)’
     _buttons.at(_actualLine)->doIt();
That's my code:
OurMenu.hh
class                           OurMenu
{
 private:
  GraphicLib                    *_window;
  OurGame                       *_game;
  gdl::Geometry                 _background;
  std::vector<gdl::Texture*>    _textures;
  std::vector<Button*>          _buttons;
  int                           _actualLine;
  int                           _time;
public:
  [...]
  void                          menuNavigation();
  void                          gameSetting();
};
Button.hh
class                   Button
{
 private:
  Bloc                  *_select;
  Bloc                  *_notSelect;
 public:
  Button(const float &x, const float &y, gdl::Geometry *back,
     gdl::Texture *tx, gdl::Texture *txS, glm::vec3 const &scale, void (OurMenu::*ptr)());
  ~Button();
  void                  (OurMenu::*doIt)();
  void                  isSelect();
  void                  isDeselect();
  Bloc                  *getSelect() const;
  Bloc                  *getNotSelect() const;
};
Button Declaration
 Button  *solo = new Button(2, 7, &_background, _textures.at(1), _textures.at(7), 
                           glm::vec3(0.0025, 0.0022, 0), &OurMenu::gameSetting);
Function call
solo->doIt();
Button.cpp
Button::Button(const float &x, const float &y, gdl::Geometry *back, 
              gdl::Texture *tx, gdl::Texture *txS, glm::vec3 const &scale, void (OurMenu::*ptr)())
{
  _select = new Bloc(0, 0, back, txS);
  _select->rotate(glm::vec3(1, 1, 0), 180);
  _select->setScale(scale);
  _select->setX(x);
  _select->setY(y);
  _select->setZ(1);
  _notSelect = new Bloc(0, 0, back, tx);
  _notSelect->rotate(glm::vec3(1, 1, 0), 180);
  _notSelect->setScale(scale);
  _notSelect->setX(x);
  _notSelect->setY(y);
  _notSelect->setZ(-1);
  doIt = ptr;
}