2015-01-27 2 views
0

Как было отмечено в различных вопросах на StackOverflow: References are not reseatableПереопределение ссылки в C++. Как компилируется код?

Immoral to reseat a reference

Я могу компилируется ниже фрагмент кода:

int a1 =10; 
int b = 15; 

int& intref = a1; 

intref = b; 

чтение обсуждение по выше приведенной ссылке, я что код выше не должен компилироваться вообще. Но это так. Может кто-нибудь, пожалуйста, укажите мне более объяснительный ресурс относительно ссылок на C++? Или дайте мне повод, что я делаю неправильно.

Я использую MinGW 4.9.1 Win32-компилятор, если это имеет значение.

ответ

3

Как вы говорите, ссылки не reseatable. Что происходит, так это то, что ссылка (которая относится к a1) присваивается значению в b. После назначения оба значения intref и a1 будут равны b.

+0

где я могу найти фрагмент кода, который на самом деле дает мне ошибку в отношении «повторного заполнения» ссылок? –

+2

@ trivalent нет ошибки, потому что язык не дает вам синтаксиса, который даже позволит вам попробовать. Знак '=' здесь имеет два разных значения, первый создает ссылку, а второй присваивает значение. –

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