gpt4 book ai didi

c++ - 存储函数指针

转载 作者:可可西里 更新时间:2023-11-01 16:29:01 24 4
gpt4 key购买 nike

下面使用了一个简单的函数指针,但是如果我想存储那个函数指针怎么办?在那种情况下,变量声明会是什么样子?

#include <iostream>
#include <vector>

using namespace std;

double operation(double (*functocall)(double), double wsum);
double get_unipolar(double);
double get_bipolar(double);

int main()
{
double k = operation(get_bipolar, 2); // how to store get_bipolar?
cout << k;
return 0;
}
double operation(double (*functocall)(double), double wsum)
{
double g = (*functocall)(wsum);
return g;
}
double get_unipolar(double wsum)
{
double threshold = 3;
if (wsum > threshold)
return threshold;
else
return threshold;
}
double get_bipolar(double wsum)
{
double threshold = 4;
if (wsum > threshold)
return threshold;
else
return threshold;
}

最佳答案

你的代码已经差不多完成了,你只是调用它似乎不正确,应该很简单

double operation(double (*functocall)(double), double wsum)
{
double g;
g = functocall(wsum);
return g;
}

如果你想有一个变量,用同样的方式声明它

double (*functocall2)(double) = get_bipolar;

或已声明时

functocall2 = get_bipolar;

为您提供一个名为 functocall2 的变量,它引用 get_bipolar,通过简单的操作来调用它

functocall2(mydouble);

或通过

将其传递给操作
operation(functocall2, wsum);

关于c++ - 存储函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2235767/

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