雙鑑於通過引用傳遞C++
double skewAngle;
我怎麼能忽略這個變量爲一個函數,並將它沒有返回值修改?
我目前的函數聲明如下:
Mat findCard(Mat& baseImage, double *angle)
當我嘗試findCard(baseImage, *skewAngle);
我得到找不到減速,誰能告訴我我該怎麼辦呢?
雙鑑於通過引用傳遞C++
double skewAngle;
我怎麼能忽略這個變量爲一個函數,並將它沒有返回值修改?
我目前的函數聲明如下:
Mat findCard(Mat& baseImage, double *angle)
當我嘗試findCard(baseImage, *skewAngle);
我得到找不到減速,誰能告訴我我該怎麼辦呢?
你的函數調用是錯誤的。您需要傳遞變量skewAngle
的地址,因爲函數的第二個參數需要double *
。將其稱爲
findCard(baseImage, &skewAngle);
請注意,根據您的函數聲明,只有第一個參數可以通過引用傳遞。第二個參數必須通過指針傳遞。
你通過指針傳遞變量,而不是引用,所以你需要將變量的地址傳遞給函數,如:
findCard(baseImage, &skewAngle);
如果你想通過引用傳遞它,你需要你的函數聲明更改爲:
Mat findCard(Mat& baseImage, double& angle)
,然後就可以直接傳遞變量的功能,如:
findCard(baseImage, skewAngle);
你不通過引用傳遞。你正在傳遞一個指針。 –
@AliAlamiri;無需通過參考。第二個參數應該按照函數原型通過指針傳遞。 – haccks
@haccks我知道,我只是通知用戶,因爲標題暗示他認爲他是通過引用傳遞的。 –