gpt4 book ai didi

c++ - 在 C++ 中,为什么无法初始化指向函数的指针?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:18 24 4
gpt4 key购买 nike

在 C++ 中,为什么无法初始化指向函数的指针?

 double (*ptrF)(double&) = NULL;    

double func(double& x)
{
return x*x;
}
ptrF= &func;

double aFunc(double target, double start, double tolerance, double (*ptrF)(double&) )

void findSqrt()
{
double myF = 2.0 ; double myStart = 1.1 ;
double t = aFunc(myF, myStart , ptrF);
cout << "myF sqrt root is " << t << endl ;
}

我得到错误:

  error: expected constructor, destructor, or type conversion before '=' token

error: cannot convert 'double (*)(double&)' to 'double' for argument '3' to 'double newton(double, double, double, double (*)(double&))'

谢谢

最佳答案

代码不能在函数外运行。

这是试图运行代码:

ptrF= &func;

这是因为它不是声明。
如果你把它移到函数内部,它就不能工作了

或者,您可以在声明点对其进行初始化。

double (*ptrF)(double&) = &func;

参数不足:

 aFunc(myF, myStart ,    ptrF);  
// ^^^^ Missing a double here

请注意,您只传递了三个参数。这个函数需要四个。因此,您将一个函数指针作为只需要 double 的参数传递。

关于c++ - 在 C++ 中,为什么无法初始化指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793769/

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