0

我在 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)()

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

4

2 回答 2

1

带任务:

funcPntr2 = funcPntr;
于 2013-11-09T16:55:37.820 回答
1

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

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

你必须

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

当您谈论C ++时,我不是很熟悉;也许你可以用参考做点什么。

于 2013-11-09T17:00:37.847 回答