Для перевода с .NET land:
«Событие» - это просто вызов функции. Чтобы сделать это настраиваемым, вам нужно дать объекту, который генерирует «событие» указатель на функцию. Вызывается указатель на функцию, и это то, что «делается», когда происходит «событие».
«Делать» - это функция в C и C ++.
Если вы хотите «сделать» только одну вещь при «событии». Вы бы передали указатель на свою функцию, которую вы хотите «сделать» над своим «событием», в качестве указателя на функцию, вызывающую «событие». Это называется callback . Другие посты содержат множество примеров того, как это работает.
Если вам нужно «сделать» несколько вещей в «событии», вам нужно использовать реализацию сигнала / слота, такую как boost :: signal . Или, если у OpenGL есть нечто подобное, я бы использовал это. В этом случае у вас есть несколько обратных вызовов .