임시 함수 인수의 수명 이해
아래 예시와 같이 함수 인수로 인스턴스화된 임시 객체를 활용하는 경우:
class MyClass { MyClass(int a); }; myFunction(MyClass(42));
파괴 행위를 이해하는 것이 중요합니다. C 표준은 소멸자의 타이밍에 대한 통찰력을 제공합니다.
임시 인수의 소멸 타이밍
임시 객체는 자신이 거주하는 완전한 표현이 끝날 때 종말을 맞이합니다. 완전한 표현식은 다른 표현식 내에 중첩되지 않고 독립된 표현식을 나타냅니다. 일반적으로 이는 문 완성을 지정하는 세미콜론(또는 조건문, 루프 및 스위치 문의 닫는 괄호)에 해당합니다. 주어진 예에서는 함수 호출로 완전한 표현식이 종료됩니다.
임시 수명 연장
임시 항목을 임시 항목으로 참조하여 수명을 연장할 수 있다는 점은 주목할 만합니다. 지속적인 참조. 이 전략은 참조 수명과 일치하도록 수명을 연장합니다.
MyClass getMyClass(); { const MyClass& r = getMyClass(); // full expression ends here ... } // object returned by getMyClass() is destroyed here
이 기술을 사용하면 MyClass obj = getMyClass();를 사용할 때와 비교하여 불필요한 복사 생성자 호출을 피하여 성능을 최적화할 수 있습니다. 그러나 보급률은 다소 낮습니다.
위 내용은 임시 함수 인수는 C에서 얼마나 오래 지속됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!