항목 5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자

2022. 6. 23. 21:51·STUDY/Effective C++

컴파일러는 우리를 대신해서 기본생성자, 복사생성장, 복사 대입 연산자, 소멸자 등 기본형 함수를 만들어낸다.

 

하지만 의 경우에는

std::string newDog("Persephone");
std::string oldDog("Satch");

NameObject<int> p(newDog, 2);
NameObject<int> s(oldDog, 36);

p=s;

 

참조자 p는 원래 자신이 참조하고 있는것과 다른 객체를 참조할 수 없다. 그렇다고 값 자체가 바뀌는것은 대입연산에 직접관여하지 않는 객체(string에 대한 포인터나 참조자를 품는 다른 객체들)까지 영향을 받게된다.

 

그렇게 된다면 컴파일 거부가 뜰 수 있다.

이럴 경우를 대비해서 복사 대입 연산자의 경우에는 직접 정의를 해야한다.

'STUDY > Effective C++' 카테고리의 다른 글

항목 7: 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자  (0) 2022.06.25
항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해버리자  (0) 2022.06.23
항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자  (0) 2022.06.23
항목 3: 낌새만 보이면 const를 들이대 보자!  (0) 2022.06.18
항목2: #define을 쓰려거든 const, enum, inline을 떠올리자  (0) 2022.06.18
'STUDY/Effective C++' 카테고리의 다른 글
  • 항목 7: 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자
  • 항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해버리자
  • 항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자
  • 항목 3: 낌새만 보이면 const를 들이대 보자!
wise_
wise_
  • wise_
    WHY'S BlOG
    wise_
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • PROJECT (19)
        • 젯슨나노 프로젝트 (0)
        • 유니티 (9)
      • STUDY (37)
        • 코딩문제 (13)
        • 알고리즘 (0)
        • Effective C++ (14)
        • 유니티 (8)
        • 언리얼 (2)
      • ERROR (7)
        • 오류덩어리들 (7)
      • REVIEW (0)
      • LIFE (0)
        • 작고 소중한 내 일상 (0)
        • 작고 귀여운 내 취미 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    여우는오늘도친구를구한다
    c#
    유니티
    모바일게임
    힐링게임
    1인개발
    C++
    깊이우선탐색
    null
    게임개발
    unity
    스마일게이트
    인디게임
    힐링
    error
    언리얼
    와이즌
    알고리즘
    백준
    코딩
    게임
    플로이드와샬
    귀여운
    ==
    개발일지
    TheFoxSeeksFriend
    개발
    퍼즐게임
    윈터데브캠프
    wisen
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wise_
항목 5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자
상단으로

티스토리툴바