class A
{
int x,y;
public:
A(int a=0,int b=0)
{x=a;y=b;}
/* ... */
}
A& fctr()
{
A loc(1,2);
return loc;
}
Давайте рассмотрим эту инструкцию:Почему возвращение по ссылке быстрее, чем возврат по значению?
A x=fctr();
fctr()
возвращает ссылку на объект, который уничтожается ... < < это не проблема -_-
В приведенной выше инструкции, и на основании ссылки, возвращаемой fctr программой копия уничтоженный объект loc в x.
В другой руке, возвращаясь по значению копия объект loc в x !!
Единственное различие я вижу в том, что при возврате по ссылке объекта LOC разрушается, но при возврате по значению объекта LOC не уничтожил , пока команда не будет завершена.
Так что возвращение по значению кажется безопасным, и оно делает то же самое, что и возвращение по ссылке !!
То, что я читал в книгах и то, что я слышал от людей, что возвращение по ссылке быстрее, чем возвращение по значению ...
Так почему возвращения по ссылке быстро, чем возвращение по значению?
... Я думаю, что я не прав в чем-то, но я не знаю, что это? !!!
«это не проблема -_-» В этом проблема. – GManNickG
Это не быстрее. Это неопределенное поведение. – juanchopanza
Я знаю, что это проблема -_-, но теперь я говорю о том, какой из двух способов происходит быстрее и почему ... – BBeta