在python中,我可以将对函数的引用传递给类,然后通过调用具有所需参数的类变量来再次使用它。如下:
def add_together(a, b):
return a + b
class Function:
def __init__(self,action,name,num_inputs=2,num_outputs=1):
self.action = action
self.num_inputs = num_inputs
self.num_outputs = num_outputs
self.name = name
self.f_type = True
def solve(self,*args):
return self.action(*args)
f = Function(add_together,"'add'")
print f.action(3,5)
我正在将代码移动到 c++ 以提高速度,但对 C++ 了解不多,我在找出如何实现相同目标时遇到了一些麻烦。请参阅下面的(弱)尝试。我热衷于保持逻辑尽可能相似。
我想知道两件事,
- 如何将函数的引用传递给类?
- 我相信 c++ 中的 *args 可以通过重载来工作,但我不确定如何加载和卸载变量。
我知道一些基本问题,但我很难用谷歌解决。
在 C++ 中的尝试
double add_together(double a, double b) {
return a + b;
}
class Function {
public:
Function(int ni, double act) {
int num_inputs = ni;
double action = act;
}
protected:
int num_inputs;
double action;
};
Function f(2,add_together);