C++函数指针指向另一个函数指针的函数赋值

C++ assigning function pointed by function pointer to another function pointer

本文关键字:函数 指针 赋值 另一个 C++      更新时间:2023-10-16

我在类 A 类中有一个C++函数指针:

void (ClassA::*funcPntr1)(void);

指向函数:

void func();

通过使用分配:

functPntr1 = &ClassA::func;

现在,我有另一个函数指针:

void (ClassA::*funcPntr2)(void);

我希望funcPntr2指向funcPntr1指向的函数。我该怎么做?

我试过这个:

funcPntr2 = &(this->*funcPntr); //normally, i invoke the function pointer by (this->*funcPntr)()

但错了。我已经尝试了许多逻辑组合,但似乎不起作用。

带赋值:

funcPntr2 = funcPntr;

如果你想分配当前分配给它的指针,它只是一个分配,正如其他人所说的(funcPntr2 = funcPntr)。

如果您希望

此赋值持续存在,即如果您希望该funcPntr2始终指向funcPntr指向的位置,即使后者发生变化,除非您更改定义,否则没有办法。

你必须

  • void (ClassA::**funcPntr2)(void);
  • 分配funcPntr2 = &funcPntr
  • 呼叫(*funcPntr)()

当你谈到C++时,我不太熟悉;也许你可以用参考资料做点什么。