对全局变量的非常量引用的初始化无效



我正在使用以下形式的库中的函数:

void run(double in, double &out);

我无法更改此函数,我需要将"输出"传递给不同类中的许多不同函数。由于我需要在整个程序中访问它,通常在创建类实例不方便时,我想将全局双精度传入"out"。但是,当我尝试以下操作时,

#include <iostream>
double inputDouble = 3;
double outputDouble;
void run(double in, double &out)
{
out = in + 5;
}
int main()
{
run(inputDouble, &outputDouble);
std::cout << outputDouble << std::endl;
return 0;
}

我收到以下错误:

error: invalid initialization of non-const reference of type ‘double&’ from an rvalue of type ‘double*’

我对引用、指针和左值/右值有点不稳定,所以请给我一个简单的答案,为什么我不能这样做,以及如何实现我的目标,即为"out"分配值并在整个程序中使用它。

main中,您正在使用第二个参数是指向双精度的指针调用run。在这种情况下,&运算符采用outputDouble的地址,它不做引用。

删除呼叫上的&,将传递引用。

相关内容

  • 没有找到相关文章

最新更新