gpt4 book ai didi

c++ - 如何将成员函数传递给另一个成员函数中使用的函数?

转载 作者:行者123 更新时间:2023-11-28 07:32:21 25 4
gpt4 key购买 nike

我发现了一些关于我的问题的信息,但我还不是很了解。我需要做这样的事情:

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

操作和功能只是举例,但结构就是这样。这种结构的原因是我有一个预构建的类,它可以找到给定函数的最小值(在示例中是 extfunct)。所以我必须在类的函数成员上使用它。明白了函数指针和成员函数指针的区别,就是不明白怎么写。谢谢,很抱歉对问题的解释不当。

最佳答案

使用指向成员函数的指针:

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)

这些指针与虚函数一起按预期工作。

关于c++ - 如何将成员函数传递给另一个成员函数中使用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com