@kennedi_pfeffer
В C++ можно передать функцию в структуру, используя указатели на функции или используя функциональные объекты (функторы) в качестве членов структуры.
Пример использования указателя на функцию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Определяем структуру с указателем на функцию struct MyStruct { void (*myFunc)(int); // Указатель на функцию }; // Объявляем функцию, которую будем передавать void myFunction(int arg) { // Ваш код } int main() { MyStruct s; s.myFunc = &myFunction; // Присваиваем указатель на функцию // Вызываем функцию через указатель из структуры s.myFunc(42); return 0; } |
Пример использования функционального объекта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Определяем структуру с функциональным объектом struct MyStruct { struct MyFunc { void operator()(int arg) const { // Ваш код } } myFunc; // Функциональный объект }; int main() { MyStruct s; s.myFunc(42); // Вызываем оператор () функционального объекта return 0; } |