[ Effective C++ ] 항목 12 : 객체의 모든 부분을 빠짐없이 복사하자

Minsu._.Lighting·2023년 11월 20일
0


[ Effective C++ ] 정리 모음집
" C++ 프로그래머의 필독서, 스콧 마이어스의 Effective C++ 를 읽고 내용 요약 / 정리 "

[핵심]

" 직접 만든 복사 함수(복사생성자, 복사대입연산자)에 대해서는 컴파일러는 책임지지 않는다.. "

  • 객체 복사 함수를 만들 때 주어진 객체의 모든 데이터 멤버 및 모든 기본 클래스 부분을 빠뜨리지 말고 복사하도록 만들자!
  • 복사 함수 두개를 만들 때 한쪽을 이용해서 다른 쪽을 구현하려는 시도를 하지말자!

💡 객체의 복사 함수를 구현할 때 확인해야 할 것

  • 해당 클래스의 데이터 멤버를 모두 복사하자!

  • 해당 클래스가 상속한 기본 클래스의 복사 함수도 꼬박꼬박 호출하자!


💡 복사 함수는 서로 간의 호출을 절대 하지 말자!

📌 복사 대입 연산자에서 복사 생성자를...

  • 이미 만들어져 존재하는 객체를 생성하라니...?

📌 복사 생성자에서 복사 대입 연산자를...

  • 생성자의 역할 : 새로 만들어진 객체를 초기화
  • 대입 연산자의 역할 : 이미 초기화가 끝난 객체에 값을 전달.

📌 그렇다면 이런 방법을...

  • 복사 생성자와 복사 대입 연산자의 코드 본문이 비슷한 느낌이라면 겹치는 부분을 함수로 분리해 호출하자!
    - 대개 private 함수, Init... 이라는 이름을 가짐.
profile
오코완~😤😤

0개의 댓글

관련 채용 정보