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++ についてあまり知らないため、同じことを達成する方法を見つけるのに苦労しました。以下の (弱い) 試行を参照してください。ロジックをできるだけ似たものに保ちたいと思っています。
知りたいのは2点、
- 関数への参照をクラスに渡すにはどうすればよいですか?
- c++ の *args は、オーバーロードによって機能すると思いますが、変数をロードおよびアンロードする方法がわかりません。
基本的な質問は知っていますが、Google で解決するのに苦労しています。
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);