C ++ Arduino:为函数指针赋值

时间:2016-06-21 15:43:39

标签: c++

我有一个包含两个类似的非静态函数的类,我想将其中一个动态分配给一个函数指针:

A.H:

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;
}

A.cpp:

error: cannot convert 'A::do_sth' from type 'void (A::)(int)' to type 'void (*)(int)'

但是我得到了这样的错误:

$value = 49;
$packed = pack('S', $value); // returns correct hex
$formatted = $packed ^ 0b1000000000000000; // returns too long number - 4 bytes instead of 2

我读过多个类似的问题,但无法在我的问题上应用他们的解决方案。

1 个答案:

答案 0 :(得分:1)

这些是会员功能。通过使用类名限定funcPtr成员指针,或者使do_sth()do_sth_else()静态成员函数。我建议在获取地址时在功能名称前面使用&