编译库时,我得到以下与以下函数相关的错误:
错误:没有匹配函数来调用'Factor :: inplaceCancel(const 因子*安培)”
我不明白为什么const Factor* rhsFPtr
被视为const Factor*&
。
也许有人可以帮我这个吗?
void InplaceCancelFF::inplaceProcess(FactorisedFactor* lhsPtr, const Factor* rhsFPtr){
lhsPtr->factorPtrs[0]->inplaceCancel(rhsFPtr);
...
}
//In the abstract Factor Class:
virtual void inplaceCancel(const Factor* rhsPtr,FactorOperator* procPtr) = 0;
//In the child class:
inline void inplaceCancel(const Factor* rhsPtr, FactorOperator* procPtr = 0);
答案 0 :(得分:0)
基类中的声明没有第二个默认参数(procPtr
)。因此,在子类声明中会忽略它。
您需要为函数提供2个参数才能使其工作(或默认为基本声明)
答案 1 :(得分:0)
感谢帮助人员。我没有看到基类中有一些函数重载(我正在编辑其他人的代码)。我更改了指针类型以匹配其他功能之一并解决了问题。