Я делаю Gui API для игр. В основном у меня есть обратные вызовы событий в моем классе, которые являются указателями на функции. Я подумал о том, чтобы напрямую разрешить пользователю = указатель функции ex:
widget->OnPaintCallback = myPaintFunc;
Но мне не нравится, как я не могу проверить значение NULL или сделать что-нибудь еще. Это также заставляет мой класс чувствовать себя незащищенным.
Я также думал о наличии сеттера для каждого обратного вызова, но это будет беспорядочно в классе (у меня их более 50)
Затем я подумал о функции, которая запрашивает строку указание, для какого события предназначен обработчик, и его указатель на функцию. Но это привело бы к ненужным ссылкам на документацию, чтобы узнать строку, и еще больше запутало бы пользовательские недокументированные виджеты.
Есть ли лучшая, более чистая альтернатива?
Спасибо
Может ли решение casablankca иметь несколько аргументов?