Нет, это не про ошибку, которую каждый из проезжающих местных жителей. Я просто пытаюсь понять возвращение ссылки на объект, который вы проходите (я читаю через праймер).О возвращении ссылок на объекты
Так что, если у меня есть функция, как это:
const foo & foo::function2(const foo & val) const
{
using namespace std;
return *this;
}
и затем я в этом главная:
foo object1;
object1.someproperty = 7;
foo object2 = object1.function2(object1);
object2.someproperty = 5;
cout << &object1 << endl;
cout << &object2 << endl;
Когда я вернусь по ссылке, не должно object2 иметь то же самое адрес (и свойства) как object1? Не следует ли изменять «someproperty» в одном объекте, изменить значение в другом? Или, возвращая ссылку на объект, просто скопируйте значения в новый объект?
Кажется, что то же самое происходит, как будто я только что сказал, что я собираюсь вернуть объект foo вместо ссылки на него.
Нет, потому что вы объявляете два разных объекта в стеке и копируете их значения. – cpx