2014-06-08 142 views
2

双鉴于通过引用传递C++

double skewAngle; 

我怎么能忽略这个变量为一个函数,并将它没有返回值修改?

我目前的函数声明如下:

Mat findCard(Mat& baseImage, double *angle) 

当我尝试findCard(baseImage, *skewAngle);

我得到找不到减速,谁能告诉我我该怎么办呢?

+2

你不通过引用传递。你正在传递一个指针。 –

+0

@AliAlamiri;无需通过参考。第二个参数应该按照函数原型通过指针传递。 – haccks

+0

@haccks我知道,我只是通知用户,因为标题暗示他认为他是通过引用传递的。 –

回答

2

你的函数调用是错误的。您需要传递变量skewAngle的地址,因为函数的第二个参数需要double *。将其称为

findCard(baseImage, &skewAngle); 

请注意,根据您的函数声明,只有第一个参数可以通过引用传递。第二个参数必须通过指针传递。

3

你通过指针传递变量,而不是引用,所以你需要将变量的地址传递给函数,如:

findCard(baseImage, &skewAngle); 

如果你想通过引用传递它,你需要你的函数声明更改为:

Mat findCard(Mat& baseImage, double& angle) 

,然后就可以直接传递变量的功能,如:

findCard(baseImage, skewAngle);