• 티스토리 홈
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 2
        2022년 09월 05일
        • starryeye
        • 작성자
        • 2022.09.05.:55

        계속하여 temporary에 대해 알아보자.

         

        temporary의 특징

         

        Point 클래스를 선언하였다.

        생성자 / 소멸자에서 호출 여부 출력용 로그를 작성하였다.

         

        main() 함수에서..

         

        이름 있는 객체 pt를 선언하였다.

        이름 있는 객체는 lvalue로 사용 가능하다. (22 line)

         

        임시 객체는 rvalue로 부를 수 있으며,

        등호의 왼쪽에 올 수 없다. (23 line)

         

        하지만, 임시 객체가 상수는 아니다. (26 line)

        따라서, 함수 호출은 된다.

         

         

        main() 함수의 연속이다.

        이름있는 객체 pt의 주소를 p1에 복사 대입 해주었다.

        Point(1, 2) 임시객체의 주소를 p2에 복사 대입 해주기를 시도 한다.

         

        하지만..  

        임시 객체는 주소 연산자로.. 주소를 구할 수 없다.

        (단, Point 클래스 내부에서 this(자기 자신 참조) 사용가능)

         

         

        주소 연산자도 포인터와 마찬가지이다.

        이름있는 객체 pt는 가능하며..

        이름없는 객체 Point(1, 2)는 참조로 가리킬 수 없다.

         

         

         

        임시 객체를 가리킬 수 있는 2가지

        main() 함수의 마지막 부분이다.

        Point(1, 2) 임시객체를 const Point& 자료형의 r3로 받았다.

        const Point& 는 const reference(상수 참조) 이다.

        상수 참조로 임시객체를 가리킬 수 있다.

        이때, 임시객체의 수명은 r3의 수명으로 바뀐다.

         

        상수 참조는 여전히 상수 이므로..

        객체 수정은 안된다. (48 line)

         

        C++11에서는 임시 객체를 상수성 없이 가리키기를 원했다..

        그래서..

        && : rvalue reference를 만들었다. (53 line)

         

         

        'C++' 카테고리의 다른 글

        [Modern C++ 정리] Temporary 4  (0) 2022.09.06
        [Modern C++ 정리] Temporary 3  (0) 2022.09.06
        [Modern C++ 정리] Temporary 1  (0) 2022.09.05
        [C++] template  (0) 2022.08.14
        [Effective Modern C++] 항목 8  (0) 2022.08.14
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바