К элементам класса можно обращаться с помощью указателей. Для этого определены следующие операции: .* и –> . Указатели на поля и методы класса определены по-разному.
Формат указателя на метод класса: <возвращаемый_тип> (<имя_класса>::*<имя_указателя>)(<параметр>)
Пример 1

int get_health() {return health;}
int get_ammo() {return ammo;}
int (monstr::*pget)();

Если указатель задавать в качестве параметра функции, это дает возможность передавать в функцию имя метода.
Пример 2

void fun(int (monstr::*pget)())
{
(*this.*pget)(); /* */
(this -> pget)(); /* */
}

Можно создать указатель на конкретный метод с помощью операции взятия адреса:
Пример 3

/* присваивание значения указателю*/

pget = &monstr::get_health;
monstr Vasia.*p;
p = new monstr;

/* вызов функции через операцию .* */
int Vasia_health=(Vasia.*pget)();

/* вызов функции через операцию ->*  */
int p_health=(p->*pget)();