bey*_*ran 0 c++ constructor higher-order-functions
我得到了一些变量依赖于不同功能的对象.换句话说:对象中的变量依赖于多种类型的函数,但应该有多个对象具有相同的这些函数.为了更多的清关,我试图给出一个例子(这不起作用).
#include <iostream>
class A
{
double size;
A( double (*f)() )
{
size = (*f)();
};
};
double fun1()
{
return 42.0;
}
int main()
{
A a = A( &fun1() );
std::cout << a.size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这当然是一个极小的例子.变量大小取决于某个函数,该函数应该作为参数传递给类.想象一下fun1,fun2作为不同种类的随机数生成器.
我认为C++中的ideomatic方式是一个包含变量的类,从它继承的类被不同对象的函数修改(如果我错误的话,请纠正我).但我的问题是:
是否有可能实现某种高阶构造函数?如果是这样,一个例子会很好.
ps:如果我使用了一些错误的技术术语,我很乐意得到纠正.
改成:
A( double (*f)() )
{
size = f();
};
Run Code Online (Sandbox Code Playgroud)
和:
A a = A( fun1 );
Run Code Online (Sandbox Code Playgroud)
当你传递的&fun1()时候试图调用该函数然后获取其结果的地址.你真正想要的是存储在其中的函数指针本身fun1.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |