I'm a java developer and currently learning C++. To do so I thought I could just try to code some programs I did in Java in C++; And here's my question: If in Java I have following class-architecture:
abstract class Event {}
class Event1 extends Event {/*define some variables and methods here*/}
class Event2 extends Event {/*define some variables and methods here*/}
class MyEventListeners {
    public void event1Listener(Event1 event){/*do something*/}
    public void event2Listener(Event2 event){/*do something*/}
}
class someclass {
    void somemethod(){
        eventHandlerInstance.add(myEventListenersInstance.getClass().getMethod("event1Listener", null);
        eventHandlerInstance.add(myEventListenersInstance.getClass().getMethod("event2Listener", null);
        //OR!
        eventHandlerInstance.add(myEventListenersInstance);
    }
    void someOtherMethod(){
        eventHandlerInstance.fireEvent(new Event1()); // MyEventListeners#event1Listener gets called
    }
}
class EventHandler {
    HashMap<Event, List<Method>> listeners = new HashMap<Event, List<Method>>();
    public void add(Method m){
        if(m.getParameterTypes().length == 1 && m.getParameterTypes()[0].isAssignableFrom(Event.class){
            listeners.get((Event)m.getParameterTypes()[0]).add(m);
        }
    }
    public void add(Class c){
        for(Method m : c.getDeclaredMethods()){add(m);}
    }
    public void fireEvent(Event e){
        for(Event ev : listeners.keySet()){
            if(e instanceof ev.getClass()){
                for(Method m : listeners.get(ev)){m.invoke(e);}
            }
        }
    }
}
This code probably wont work since I just wrote it down in two minutes, but it should visualize what I'm trying to do. The problem is, I heard that C++ doesnt support reflection... Is it possible to port this Java code to C++, and if yes, how?
Kind regards
 
    