Как передать тело функции в другую функцию?
Например, есть функция в классе:
Class Foos
{
public:
void Foo(){
}
}
void Foo2()
{
int a = 2+2;
std:cout << a;
}
int main()
{
Foos foo;
//foo.Foo() = Foo2; Как мне сюда передать тело функции?
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Вы этого хотите?
#include <iostream>
#include <iomanip>
using namespace std;
class Foos
{
public:
Foos(void (*f)()= nullptr): f(f){}
void Foo()
{
if (f) f();
}
private:
void (*f)() = nullptr;
};
void Foo1()
{
cout << "Foo1\n";
}
void Foo2()
{
cout << "Foo2\n";
}
void Foo3()
{
cout << "Foo3\n";
}
int main()
{
Foos foo1(Foo1), foo2(Foo2), foo3(Foo3);
foo1.Foo();
foo2.Foo();
foo3.Foo();
}