2017-01-02 3 views
-1

Недавно я начал изучать C++ и наткнулся на эту проблему. Простите меня, если это звучит немой, но почему мы не можем инициализировать значение ссылочной переменной черезИнициализация для ссылок C++

int r= 20; 
int &ref = r; 
ref(20); 

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

IDE: C++ 11

Почему это так?

+0

В вашем примере он был инициализирован в строке 2. Для строки 3 вы можете просто назначить новое значение с помощью 'ref = 20'. – wally

+0

Или вы хотели спросить, почему вы не можете делать 'int & ref (20)'? – wally

+0

@Muscampester Я знаю, что мы можем использовать 'ref = 20', но я не понял, почему мы не можем использовать' ref (20) '. – DatDankMeme

ответ

2

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

В каком смысле это работает? Теперь для компилятора ref(20); выглядит как вызов функции, если вы меняете int &ref на int ref, вы все равно получите ту же ошибку.

Я думаю, вы имели в виду, что int r(20);. В случае ссылок они должны сначала быть привязаны к переменной, которую они ссылаются, это делает невозможным привязку к переменной и при этом присваивать значение - если это то, о чем вы спрашиваете.

+0

Спасибо, много, я понял, что я делаю неправильно. Когда я инициализировал 'r (20), компилятор думал, что передаю значение функции. – DatDankMeme

 Смежные вопросы

  • Нет связанных вопросов^_^