由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 把一个function pointer作为参数传入一个function的语法是什么?
相关主题
about STL functor and function pointerstemplate 疑问
问两个C++语法问题C++的smart pointer注定是个二流的东西
function pointer 和 call-back function 有什么区别?请教一个C++ typedef的问题
请教一个const pointer的问题请教C++ call-by-ref & call-by-val的问题
C++ Function Pointer Array 的问题java如何保护传入的参数不被函数改动?
C++ Q05: pointer to constant variablefunction declaration
用STL map的时候怎么自己定义大小比较的关系[合集] call-by-ref降低了C++程序可读性
请教一个boost::bind的问题请教一个c++ 里functor的问题
相关话题的讨论汇总
话题: function话题: double话题: pointer话题: 参数话题: const
进入Programming版参与讨论
1 (共1页)
J*****n
发帖数: 4859
1
比如我有一个function pointer f
double (*f) (const double& p, const double& q=0);
我希望另一个函数g调用它:g(f),那么g的定义该如何写?
另一个问题是如果f的参数个数未知,那么g又该如何写?
谢谢。
t****t
发帖数: 6806
2
pointer to function里不准带default parameter [8.3.6]
void g(double (*f)(const double&, const double&));
f的参数个数未知, g当然不能写, 除非你用template
但是即使你用了template, 拿到了(未知参数个数/类型)的function pointer f, 你打
算怎么调用它呢?

【在 J*****n 的大作中提到】
: 比如我有一个function pointer f
: double (*f) (const double& p, const double& q=0);
: 我希望另一个函数g调用它:g(f),那么g的定义该如何写?
: 另一个问题是如果f的参数个数未知,那么g又该如何写?
: 谢谢。

J*****n
发帖数: 4859
3

我有一些离散的点(x_i,y_i),先用某种曲线拟合的技巧(样条,多项式回归)得出其拟
合函数f(x),然后再把f(x)传到g中,供g使用。
现在的问题是f的参数个数不一定,比如用多项式回归,那么f中不但要传x_i的值,还
要传一个多项式的degree:
double f (vector& x_i, const double& degree);
如果用三次样条插值,虽然不需要degree了,但是除了x_i外还要传一个vector进去用
于存放三次样条的knots(边界点):
double f (vector& x_i, vector& knots);
作为g函数本身,并不知道用户用哪种方法去拟合,也就是不知道f所带的参数是怎么样
的。
请教该如何解决这个问题。
谢谢。

【在 t****t 的大作中提到】
: pointer to function里不准带default parameter [8.3.6]
: void g(double (*f)(const double&, const double&));
: f的参数个数未知, g当然不能写, 除非你用template
: 但是即使你用了template, 拿到了(未知参数个数/类型)的function pointer f, 你打
: 算怎么调用它呢?

s******n
发帖数: 21
4
你能改g函数的接口吗? 可以试一下 pass functor.

【在 J*****n 的大作中提到】
:
: 我有一些离散的点(x_i,y_i),先用某种曲线拟合的技巧(样条,多项式回归)得出其拟
: 合函数f(x),然后再把f(x)传到g中,供g使用。
: 现在的问题是f的参数个数不一定,比如用多项式回归,那么f中不但要传x_i的值,还
: 要传一个多项式的degree:
: double f (vector& x_i, const double& degree);
: 如果用三次样条插值,虽然不需要degree了,但是除了x_i外还要传一个vector进去用
: 于存放三次样条的knots(边界点):
: double f (vector& x_i, vector& knots);
: 作为g函数本身,并不知道用户用哪种方法去拟合,也就是不知道f所带的参数是怎么样

t****t
发帖数: 6806
5
the extra parameters of f() is for f() only, right? you encapsulate the
extra parameters WITH function pointer f, and make it an object. the object
may inherit from a common type and g() call f() through virtual functions;
or the object could be unrelated and templated g() call f() through a common
generic interface.

【在 J*****n 的大作中提到】
:
: 我有一些离散的点(x_i,y_i),先用某种曲线拟合的技巧(样条,多项式回归)得出其拟
: 合函数f(x),然后再把f(x)传到g中,供g使用。
: 现在的问题是f的参数个数不一定,比如用多项式回归,那么f中不但要传x_i的值,还
: 要传一个多项式的degree:
: double f (vector& x_i, const double& degree);
: 如果用三次样条插值,虽然不需要degree了,但是除了x_i外还要传一个vector进去用
: 于存放三次样条的knots(边界点):
: double f (vector& x_i, vector& knots);
: 作为g函数本身,并不知道用户用哪种方法去拟合,也就是不知道f所带的参数是怎么样

1 (共1页)
进入Programming版参与讨论
相关主题
请教一个c++ 里functor的问题C++ Function Pointer Array 的问题
C++中怎么传递std::hex这样的参数啊C++ Q05: pointer to constant variable
why int** cannot convert to const int** ?用STL map的时候怎么自己定义大小比较的关系
Help with a c++ const variable请教一个boost::bind的问题
about STL functor and function pointerstemplate 疑问
问两个C++语法问题C++的smart pointer注定是个二流的东西
function pointer 和 call-back function 有什么区别?请教一个C++ typedef的问题
请教一个const pointer的问题请教C++ call-by-ref & call-by-val的问题
相关话题的讨论汇总
话题: function话题: double话题: pointer话题: 参数话题: const