C ++函数认为指针参数是指针引用

时间:2016-08-29 13:40:44

标签: c++ implicit-conversion

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

  

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

2 个答案:

答案 0 :(得分:0)

基类中的声明没有第二个默认参数(procPtr)。因此,在子类声明中会忽略它。

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

答案 1 :(得分:0)

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