私はC++にかなり慣れていないので、このメソッドはVectorクラスでオーバーロードしません。
class Vector {
...
void findTriDiagonalDeterminant(mpf_t *det, unsigned long long *d, double offset) {
...
}
void findTriDiagonalDeterminant(mpf_t *det, unsigned long long *d) {
findTriDiagonalDeterminant(det, d, 0);
}
}
class Matrix : public Vector {
private:
unsigned long long* dims;
public:
void findTriDiagonalDeterminant(mpf_t* det, int index) {
Vector::findTriDiagonalDeterminant(det, dims+index);
}
...
}
g ++は言う
error: no matching function for call to ‘Matrix::findTriDiagonalDeterminant(__mpf_struct (*&)[1], long long unsigned int*)’
しかし、一致する関数があります。Vector クラスの上から 2 番目の関数です。
ポインターなしで同じことを試みました (*d を d に、dims+index を *(dims+index) に置き換えて) 試しましたが、役に立ちませんでした。