#include <iostream>
using namespace std;

class WVObject
{
protected:
    typedef bool (*EvalFun)(unsigned long);
 
    bool evalA (unsigned long id) const { return true; }
    bool evalB (unsigned long id) const { return false; }
   
    bool test (EvalFun fnctToEval) const
    {
        //hier der Zugriff auf die übergebene Methode
        bool res = (*fnctToEval) (4);
        return res;
    }
    
public:
    virtual void parse() = 0;
};

//WVKnoten.hpp
class WVKnoten : public WVObject
{
	public:
	void parse () { cout << test(&WVObject::evalA); }
};

int main() {
	WVKnoten obj;
	obj.parse();
	return 0;
}