#include <iostream>
#include <vector>


class EventListener
{
public:
	void test(int n)
	{
		std::cout << "n is: " << n << std::endl;
	}
};

typedef void (EventListener::*ftOnEventClass)(int n);

struct EventNode
{
	ftOnEventClass functionClass;
	EventListener* handle;
};


int main()
{
	std::vector<EventNode *> m_vEventHandlerList;
	EventListener el;
	EventNode en = { &EventListener::test, &el};
	m_vEventHandlerList.push_back(&en);

	for (auto& iter : m_vEventHandlerList)
	{
		if (iter->handle != nullptr)
		{
			(iter->handle->*iter->functionClass)(123);
		}
	}
}