gpt4 book ai didi

c++ - 将函数传递给 C++ 中的函数

转载 作者:行者123 更新时间:2023-11-30 02:40:36 25 4
gpt4 key购买 nike

我有一个带有签名的寻根函数:

double root_find(double f(double), ...)(省略号只是表示还有一些其他参数与此问题无关。)

我也可以用签名声明函数:

double root_find(double(& f)(double), ...)

无论哪种方式,它都有效。使用第二个签名,很明显我通过引用传递了函数 f。对于第一个签名,我不知道发生了什么。谁能解释一下?

最佳答案

就像数组一样,函数类型在参数声明中被调整为指向函数的指针类型。因此,double root_find(double f(double)) 表示 double root_find(double (*f)(double)) - 一个接受函数指针的函数。

函数引用和函数指针本质上是相同的,但是引用和指针的语义仍然适用(不能重新分配引用,而指针可以,等等)。此外,它们都可以作为普通函数调用,因为在这种情况下语法明确地是函数调用。

关于c++ - 将函数传递给 C++ 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798876/

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