• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Modern C++ 정리] Temporary 1
        2022년 09월 05일
        • starryeye
        • 작성자
        • 2022.09.05.:37
        반응형

        https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

         

        C++ Core Guidelines

         

        isocpp.github.io

        위는 참고하면 좋은.. 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바