C++

C++ 실습 문제 7 (Copy construct)

안도일 2022. 4. 8. 16:31

1. 복사 생성자를 사용하여 원본 객체 Circle을 복사하고 각각의 면적을 출력하라.

메인 함수

만약 복사 생성자 Circle(const Circle& c)가 선언되어 있지 않는 클래스라면

컴파일러는 자동으로 '디폴트 복사 생성자'를 삽입한다.

 

 

 

 

 

 

2. 깊은 복사 생성자를 사용하여 Person 클래스를 만들어라.

메인 함수
클래스 선언부
클래스 구현부

복사 생성자를 호출하는 방법은 아래와 같은 방식도 있는데 얼핏보면 비슷해 보이는 2번째 호출 방식은 정상적으로 복사 생성자를 호출 하지 못한다. 

 

this 포인터를 사용하지 않은 코드

클래스 선언부
클래스 구현부

 

 

 

 

3. 묵시적 복사 생성에 의해 복사 생성자가 자동 호출되는 경우

정상 동작일 경우 복사 생성자가 3번 모두 호출됨.