Passing Methods/Functions in Parameter

Yes, I'm positive. Here's an even more simplified version. Sorry for any confusion.

class MenuItem
{
public:
  typedef void (*function)();

  MenuItem *subMenus;
  function action;
  function elevate;

  MenuItem()
  {
    subMenus = NULL;
    action = NULL;
    elevate = NULL;
  }
  void elevateToSelf()
  {
    //do stuff here.
  }
  void setElevation(function menuItemElevate)
  {
    elevate = menuItemElevate;
  }
  void test()
  {
    subMenus[0].setElevation(elevateToSelf);
  }
};
In file included from MenuItem.cpp:4:
/test.h: In member function 'void MenuItem::test()':
test.h:25: error: no matching function for call to 'MenuItem::setElevation(<unresolved overloaded function type>)'
/test.h:20: note: candidates are: void MenuItem::setElevation(void (*)())