我在类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)()
但是错了。我尝试了很多逻辑组合,但似乎没有用。
答案 0 :(得分:1)
分配:
funcPntr2 = funcPntr;
答案 1 :(得分:1)
如果你想分配当前分配给它的指针,那么它只是一项任务,正如其他人所说的那样(funcPntr2 = funcPntr
)。
如果你想让这个作业持续下去,我。即如果你希望funcPntr2
始终指向funcPntr
指向的位置,即使后者发生了变化,除非你改变定义,否则没有办法。
你必须
void (ClassA::**funcPntr2)(void);
funcPntr2 = &funcPntr
和(*funcPntr)()
。当你谈到C ++时,我并不那么熟悉;也许你可以用引用做些什么。