c++函数认为指针实参是指针引用

C++ function thinks pointer argument is pointer reference

本文关键字:指针 实参 引用 函数 c++      更新时间:2023-10-16

当编译一个库时,我得到以下与下面函数相关的错误:

错误:没有匹配的函数来调用' 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);

基类中的声明没有第二个默认参数(procPtr)。所以这在子类声明中会被忽略。

您需要为该函数提供2个参数才能使其工作(或默认为基声明)

谢谢大家的帮助。基类中有一些函数重载,我没有看到(我正在编辑别人的代码)。我更改了指针类型以匹配其他函数之一,从而解决了问题。