【发布时间】:2016-10-23 06:24:50
【问题描述】:
我有一个包含两个类似的非静态函数的类,我想将其中一个动态分配给函数指针:
啊哈:
class A{
private:
void (*funcPtr)(int);
void do_sth(int i);
void do_sth_else(int i);
}
A.cpp:
A::A(int i){
if(i == 1)
A::funcPtr = A::do_sth; // or &A::do_sth;
else
A::funcPtr = A::do_sth_else; // or &A::do_sth_else;
}
但我得到这样的错误:
error: cannot convert 'A::do_sth' from type 'void (A::)(int)' to type 'void (*)(int)'
我阅读了多个类似的问题,但无法将他们的解决方案应用于我的问题。
【问题讨论】:
-
考虑到 Arduino 的内存限制,函数指针可能有点过于复杂。如果编译器可以处理它,为什么不使用lambdas?
标签: c++