簡體   English   中英

C ++函數認為指針參數是指針引用

[英]C++ function thinks pointer argument is pointer reference

編譯庫時,出現以下與以下功能有關的錯誤:

錯誤:沒有匹配的函數調用'Factor :: inplaceCancel(const Factor *&)'

我不明白為什么將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個參數才能使其正常工作(或默認情況下為基本聲明)

感謝您的幫助。 基類中有一些我沒有看到的函數重載(我正在編輯其他人的代碼)。 我更改了指針類型以匹配其他功能之一,從而解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM