Google отображает v3 - доступное Контекстное меню?

Если Вы хотите быть действительно педантичными, существует одна вещь, которую можно сделать со ссылкой, которую Вы не можете сделать с указателем: расширьте время жизни временного объекта. В C++ при привязке ссылки константы на временный объект время жизни того объекта становится временем жизни ссылки.

std::string s1 = "123";
std::string s2 = "456";

std::string s3_copy = s1 + s2;
const std::string& s3_reference = s1 + s2;

В этом примере s3_copy копирует временный объект, который является результатом конкатенации. Принимая во внимание, что s3_reference в сущности становится временным объектом. Это - действительно ссылка на временный объект, который теперь имеет то же время жизни как ссылка.

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

5
задан Mr. Flibble 21 July 2009 в 23:14
поделиться