我有一个像 .net 一样管理函数指针的想法,我认为这可能是一个记忆舔我需要的构造。
当我调用action(5);
函数 Test 中的 5 时会发生什么?在我看来,它永远留在堆栈上,并可能导致 stackoverflow 异常
#include <iostream>
union Action
{
void (*action)();
void (*action1)(int);
void operator()(int i)
{
this->action1(i);
}
void operator=(void (*action)())
{
this->action = action;
}
void operator=(void (*action)(int))
{
this->action1 = action;
}
};
void Test()
{
std::cout << "test";
}
int main()
{
Action action;
action = Test;
action(5);
char c;
std::cin >> c;
}