Presentation is loading. Please wait.

Presentation is loading. Please wait.

윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.

Similar presentations


Presentation on theme: "윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자."— Presentation transcript:

1 윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자

2 윤성우의 열혈 C++ 프로그래밍 Chapter 05-1. '복사 생성자'와의 첫 만남

3 C++ 스타일의 초기화 윤성우의 열혈 C++ 프로그래밍 C 스타일 초기화 C++ 스타일 초기화
이렇듯, 다음 두 문장은 실제로 동일한 문장으로 해석된다. SoSimple sim2=sim1; SoSimple sim2(sim1); 대입연산의 의미처럼 실제 멤버 대 멤버의 복사가 일어난다!

4 SoSimple sim2(sim1); 윤성우의 열혈 C++ 프로그래밍 실행결과 SoSimple sim2(sim1)의 해석!
SoSimple sim2=sim1 은 묵시적으로 SoSimple sim2(sim1) 으로 해석이 된다. 실행결과

5 자동으로 삽입이 되는 디폴트 복사 생성자 윤성우의 열혈 C++ 프로그래밍
복사 생성자를 정의하지 않으면, 멤버 대 멤버의 복사를 진행하는 디폴트 복사 생성자가 삽입된다.

6 키워드 explicit 윤성우의 열혈 C++ 프로그래밍
AAA 생성자를 explicit로 선언하면 AAA obj=3 과 같은 형태로 객체 생성 불가!

7 Chapter 05-2. ‘깊은 복사’와 ‘얕은 복사’
윤성우의 열혈 C++ 프로그래밍 Chapter ‘깊은 복사’와 ‘얕은 복사’ 윤성우 저 열혈강의 C++ 프로그래밍 개정판

8 디폴트 복사 생성자의 문제점 윤성우의 열혈 C++ 프로그래밍 실행결과 객체 소멸 시 문제가 되는 구조!!! 얕은 복사!

9 ‘깊은 복사’를 위한 복사 생성자의 정의 윤성우의 열혈 C++ 프로그래밍 깊은 복사를 구성하는 복사 생성자!!!

10 윤성우의 열혈 C++ 프로그래밍 Chapter 복사 생성자의 호출시점 윤성우 저 열혈강의 C++ 프로그래밍 개정판

11 복사 생성자가 호출되는 시점 윤성우의 열혈 C++ 프로그래밍 인자 전달 시 선언과 동시에 초기화 반환 시 메모리
메모리 공간의 할당과 초기화가 동시에 일어나는 상황 case 1 인자 전달 시 선언과 동시에 초기화 case 2 & case 3 반환 시 메모리 공간 할당과 동시에 초기화

12 복사 생성자의 호출 case의 확인1 윤성우의 열혈 C++ 프로그래밍 실행결과

13 복사 생성자의 호출 case의 확인2 윤성우의 열혈 C++ 프로그래밍 실행결과 인자 전달에 의한 복사 생성자 호출 반환에 의한

14 반환할 때 만들어진 객체의 소멸 시점 윤성우의 열혈 C++ 프로그래밍 참조값이 반환되므로 참조자로 참조 가능! 실행결과

15 Chapter 05가 끝났습니다. 질문 있으신지요?


Download ppt "윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자."

Similar presentations


Ads by Google