【发布时间】:2019-05-20 09:21:58
【问题描述】:
当函数不是方法时,我知道如何将函数作为输入参数,但当函数是方法时,我不知道该怎么做。
这是我尝试过的:
#include <iostream>
class A
{
void funct_1(int a, void (A::*f)(int))
{
(A::*f)(a);
}
public:
void funct_2(int k)
{
// do something
}
void funct_3(int k)
{
// do something
}
void funct_4(int k)
{
// some reason to use the function argument functionality...
if (k % 2)
funct_1(k, funct_2);
else
funct_1(k, funct_3);
}
};
int main()
{
A a;
a.funct_4(4);
return 0;
}
以上代码无法编译。我尝试了很多变体,但找不到任何有效的语法用法。 有人可以根据语法解释我在这里做错了什么吗?
【问题讨论】:
标签: c++ class function-object