0
基本上我想要的是將成員函數的引用傳遞給另一個類的另一個函數。示例代碼是這樣的:指向一個類的成員函數的指針
#include<iostream>
using namespace std;
class algorithm
{
void (*ODE)(double * timeDeri, double * var);
void simulation()
{
//use ODE to do simulation
}
parent(void (*someODE)(double * timeDeri, double * var))
{
ODE=someODE;
}
}
class model:algorithm
{
void specificODE(double * timeDeri, double * var)
{
//detail of the ODE
}
model() : algorithm(specificODE)
{
//some initialization
}
}
int main()
{
model a;
a.simulation();
}
現在我知道這段代碼不起作用。因爲函數指針只能用於指向靜態函數。但是,出於某些實際原因,我無法使specificODE
保持靜態。所以我不知道是否有一種指針可以幫助我做到這一點。誰能幫忙?
PS1,我檢查過成員函數指針。如果我想要的是指向同一個類中的成員函數,那麼該指針非常有用。但是在這種情況下,指針應該能夠指向不同類的成員函數。
PS2,定義基於模型的算法類是一種工作。但是,我想讓模型和算法相互獨立。所以,如果我在另一個模型上使用相同的算法,我不必在我的算法類中弄亂代碼。出於同樣的原因,我不想和模型類和算法類交朋友,也不想爲算法類中的模型類做任何事情。