私は関数ポインタの初心者であり、これを使用するのはこれが初めてです。
コードは次のとおりです。
#include "time.cpp"
int main(){
double** matrix= new double*[10];
for (int i=0; i<10; i++) matrix[i]=new double[10];
gear nit;
nit.roll(&matrix[0]);
}
time.cpp
double pulse_a (double t, double dt);
class gear{
void dynamics(double (*)(double, double), double** , double, double);
double pulse_b(double t, double dt);
public:
int net;
void roll(double** matrix);
};
void gear::roll(double** matrix){
double t,dt;
double (*pfunc)(double,double)=pulse_a; //or pulse_b
dynamics(pfunc,&matrix[0],t,dt);
}
void gear::dynamics(double (*pulse)(double , double ), double** matrix, double t, double dt){
pulse(t,dt);
}
pfuncをpulse_aに割り当てると、次のようになります。
エラー:タイプ'double(gear ::)(double、double)'の引数が'double(*)(double、double)'と一致しません</ p>
にとって double (*pfunc)(double,double)=pulse_a;
pfuncをpulse_bに割り当てるとundefined reference to chirp(double, double)'
、 double (*pfunc)(double,double)=pulse_b;
私は何が間違っているのですか?