通过引用C ++传递double

时间:2014-06-08 01:36:07

标签: c++ pointers double

给出

double skewAngle;

如何将此变量传递给函数并修改它而不返回值?

我目前的功能声明如下:

Mat findCard(Mat& baseImage, double *angle)

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

我没有找到减速,有人能告诉我如何做到这一点吗?

2 个答案:

答案 0 :(得分:3)

您通过指针而非引用传递变量,因此您需要将变量的地址传递给函数,例如:

findCard(baseImage, &skewAngle);

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

Mat findCard(Mat& baseImage, double& angle)

然后您可以将变量直接传递给函数,例如:

findCard(baseImage, skewAngle);

答案 1 :(得分:2)

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

findCard(baseImage, &skewAngle);   

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