- [Modern C++ 정리] Temporary 12022년 09월 05일
- starryeye
- 작성자
- 2022.09.05.:37
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
위는 참고하면 좋은.. C++ 공식 가이드라인 사이트이다.
Temporary에 대하여 정리해보겠다.
temporary 란?
class Point { public: int x, y; Point(int a, int b) { std::cout << "Point()" << std::endl; } ~Point() { std::cout << "~Point()" << std::endl; } };
위와 같이 Point 라는 클래스를 선언했다.
생성자와 소멸자에서 각각 식별가능한 로그를 출력하도록 하였다.
int main() { Point pt(1, 2); //이름 있는 객체 (named object) //수명 : 자신을 선언한 블럭을 벗어날때 파괴. Point(1, 2); //이름 없는 객체 (unnamed object) //수명 : 자신을 선언한 문장의 끝 //-> 임시객체(temporary) 라 부른다. Point(1, 2), std::cout << "X" << std::endl; // C++에서는 컴마를 붙이고 다음 문장을 적을 수 있다. //실행 순서: 생성자 -> X -> 소멸자(X출력후 문장끝에서 소멸자 호출) std::cout << "-------" << std::endl; } //<-- pt 파괴
위 main 함수에서..
Point pt(1, 2); pt는 이름 있는 객체이다.
수명은 자신을 선언한 블럭을 벗어날 때 파괴된다.
즉, main() 함수를 벗어날 때 파괴된다.
Point(1, 2); 이 코드는 이름이 없다.
이름 없는 객체로 부른다.
다른 말로는 임시 객체(temporary) 라 부른다.
수명은 자신을 선언한 문장의 끝에서 바로 파괴 된다.
'C++' 카테고리의 다른 글
[Modern C++ 정리] Temporary 3 (0) 2022.09.06 [Modern C++ 정리] Temporary 2 (0) 2022.09.05 [C++] template (0) 2022.08.14 [Effective Modern C++] 항목 8 (0) 2022.08.14 [Effective Modern C++] 항목 5 (0) 2022.08.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)