Exceptional C++ 항목 10에서는 임시 사용에 대해 설명합니다 (35 페이지의 맨 위에 "... 즉, 반환 된 임시 사본을 대상에 복사").임시 개체에 대한 쿼리
코드는 I 임시 어디 왜 만들어지는 것에 매우 명확하지 않다
template<class T>
T Stack::<T>::Pop()
{
...
T result = ...
return result;
}
...
string s1(s.Pop());
입니다.
함수에서 값으로 개체를 반환하면 항상 임시로 생성됩니까? 왜 그리고 그 범위는 무엇입니까? 이 경우 s1이 아마도 임시로 생성 된 사본입니까? 함수 내에서 결과 객체로 생성 할 수없는 이유는 무엇입니까?
TIA
------- 편집 --------- 나는 책이 용어 사본을 사용하고, 그가의 의미와 그것을 사용하기 때문에 혼란 것 같아 작동하는 동안 나는 그것이 중복을 의미한다고 생각했다. 일반적으로 Verr 좋은 명확한 책, 그러나이 특정한 절은 아마 일 수 있었다처럼 명확하지 않다.
그리고 나는이 예에서 유형 T의 임시 객체가 두 개 이상 생성되었다고해도 될까요? – Kos