Что происходит когда передающая ссылка на литерал в C++?

Проблема заключалась в том, что у Принципала службы был остаточный контекст, у которого не было необходимых разрешений для выполнения действий. Как только я удалил этот контекст, он вызвал новый логин, где я использовал свою учетную запись пользователя, и импорт работал.

7
задан Gilad Naor 19 March 2009 в 07:13
поделиться

2 ответа

Временная переменная создается с этой целью, и она обычно создается на стеке.

Вы могли попробовать к const_cast, но это без понтонного моста так или иначе, так как Вы больше не можете получать доступ к переменной, после того как функция возвращается.

6
ответ дан 7 December 2019 в 07:50
поделиться
  1. Какой компилятор, вероятно, создает литерал константы, но это не переменная.
  2. Ссылка неконстанты не может указать на литерал.

    $ g ++ test.cpp test.cpp: В функции int main()': test.cpp:10: error: invalid initialization of non-const reference of type 'double&' from a temporary of type 'double' test.cpp:5: error: in passing argument 1 ofдвойное нечто (double&)'

test.cpp:

#include <iostream>

using namespace std;

double foo(double & x) {
    x = 1;
}

int main () {
    foo(5.0);

    cout << "hello, world" << endl;
    return 0;
}

С другой стороны, Вы могли передать литерал ссылке константы следующим образом. test2.cpp:

#include <iostream>

using namespace std;

double foo(const double & x) {
    cout << x << endl;
}

int main () {
    foo(5.0);

    cout << "hello, world" << endl;
    return 0;
}
1
ответ дан 7 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: