1
在python中,我可以將對函數的引用傳遞到類中,然後在 之後再次使用它,從而調用具有所需參數的類變量。如下圖所示:如何在C++中引用函數(轉換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++中的*參數我相信會通過重載工作,但我不確定如何加載和卸載變量。
我知道的一些基本問題,但我正在努力通過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);
非常感謝,它運作良好。 – joeButler
有沒有辦法讓所需數量的變量成爲可能?例如,如果我想一起添加三個數字,我會做另一個typedef,但構造函數變成非泛型的。我將不得不以不同的方式分配動作函數,因爲function_ptr不包含三個雙打作爲輸入 – joeButler