C ++分配函数指向另一个函数指针的函数指针

时间:2013-11-09 16:53:39

标签: c++ member-function-pointers

我在类ClassA中有一个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)()

但是错了。我尝试了很多逻辑组合,但似乎没有用。

2 个答案:

答案 0 :(得分:1)

分配:

funcPntr2 = funcPntr;

答案 1 :(得分:1)

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

如果你想让这个作业持续下去,我。即如果你希望funcPntr2始终指向funcPntr指向的位置,即使后者发生了变化,除非你改变定义,否则没有办法。

你必须

  • 有一个void (ClassA::**funcPntr2)(void);
  • 分配funcPntr2 = &funcPntr
  • 致电(*funcPntr)()

当你谈到C ++时,我并不那么熟悉;也许你可以用引用做些什么。