C++ 为多个实例提供相同的事件处理程序

C++ 为多个实例提供相同的事件处理程序,c++,algorithm,events,poco,C++,Algorithm,Events,Poco,我的程序中有一个Shape类,它有一些命中测试逻辑来判断用户是否单击了形状内部 形状.h 但是,我在这里有多个实例,我不确定应该如何订阅它们,并为要注意的气球提供相同的处理程序方法:BallooBurst事件没有执行不特定于该气球的操作,因此与C sender不同,在该事件中,sender对我来说并不重要。Handleballonburstshapeargs&e将做一件独立的事情,而不是专门针对活动发生地的气球 如何在此处侦听所有气球形状实例的事件并提供单个处理程序方法?为什么使用C标记?这个问

我的程序中有一个Shape类,它有一些命中测试逻辑来判断用户是否单击了形状内部

形状.h

但是,我在这里有多个实例,我不确定应该如何订阅它们,并为要注意的气球提供相同的处理程序方法:BallooBurst事件没有执行不特定于该气球的操作,因此与C sender不同,在该事件中,sender对我来说并不重要。Handleballonburstshapeargs&e将做一件独立的事情,而不是专门针对活动发生地的气球


如何在此处侦听所有气球形状实例的事件并提供单个处理程序方法?

为什么使用C标记?这个问题与C无关。@Nawaz:我在项目中使用的Poco事件框架与C非常相似。所以,我认为这些人可能也能提供帮助。不做一些不具体的事情?对吗?
class Shape
{
    Event<ShapeArgs> balloonBurst;
    virtual void onMousePress(); //called when hit test is true on user's click
    private:
    bool hitTest(int x, int y);
};
virtual void onMousePress()
{
    cout<<"Clicked inside the shape";
    ShapeArgs arg;
    arg.name = "XYZ";
    NotifyEvent(balloonBurst, arg);
}
vector<Shape*> shapes;
void handleShape(ShapeArgs &e);
main()
{
    for(int i=0;i<10;++i){
        Shape *shape = new Shape(Color Color, string URL);
        shapes.push_back(shape);
    }
}
AddListener(shape->balloonBurst, this, &MainProgram::handleBalloonBurst); //where shape is a single instance`