簡體   English   中英

對全局變量的非常量引用的無效初始化

[英]invalid initialization of non-const reference to global variable

我正在使用以下形式的庫中的函數:

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 ,第二個參數是指向double 的指針 在這種情況下, &運算符采用outputDouble的地址,它不進行引用。

刪除調用中的&並傳遞一個引用。

暫無
暫無

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

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