我对 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 类中的第二个。
我在没有指针的情况下尝试了相同的操作(通过将 *d 替换为 d 并将 dims+index 替换为 *(dims+index)),但它没有帮助。