我发现了一些关于我的问题,但我还不太清楚。我需要做这样的事情:
class T
{
double a;
public:
double b;
void setT(double par)
{
a = par;
}
double funct(double par1)
{
return par1 / a;
}
void exec()
{
b = extfunct(funct, 10);
}
};
double extfunct(double (*f)(double),double par2)
{
return f(par2)+5;
}
操作和功能仅作为示例,但结构是这样的。这种结构的原因是我有一个预先构建的类,它找到了一个给定函数的最小值(它在示例中是exfunct)。所以我必须在类的函数成员上使用它。我理解指向函数的指针和指向成员函数的指针之间的区别,但我不明白如何编写它。谢谢,对不起解释这个问题很抱歉。
答案 0 :(得分:1)
使用指向成员函数的指针:
struct Foo
{
void f(int, int) {}
void g(int, int) {}
void execute((Foo::*ptmf)(int, int), int a, int b)
{
// invoke
(this->*ptmf)(a, b);
}
};
用法:
Foo x;
x.execute(&Foo::f, 1, 2); // calls x.f(1, 2)
x.execute(&Foo::g, 2, 1); // calls x.g(2, 1)
这些指针按预期使用虚函数。