LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

А никак. Объект Bar(10,10) — временный (безымянный), он после строки с присваиванием уничтожается. А присваивается (копируется) только Foo, т. е. неявно вызывается метод Foo& Foo::operator= (const Foo&), в который в качестве параметра передаётся ссылка на временный объект.

Примерно так:

Foo t1;
t1.operator= (Bar (10, 10));

Исходная версия intelfx, :

А никак. Объект Bar(10,10) — временный (безымянный), он после строки с присваиванием уничтожается. А присваивается (копируется) только Foo, т. е. неявно вызывается метод Foo& operator= (const Foo&), в который в качестве параметра передаётся ссылка на временный объект.