생성자 (Constructor)
생성자는 객체가 생성될 때 자동으로 호출되는 특별한 멤버 함수입니다.
주로 객체의 초기화를 담당합니다.
기본 생성자
매개변수가 없는 생성자를 기본 생성자라고 합니다.
매개변수가 있는 생성자
객체 생성 시 초기값을 전달받아 초기화할 수 있습니다.
복사 생성자
다른 객체를 이용하여 새로운 객체를 초기화할 때 사용됩니다.
이동 생성자 (C++ 11)
리소스의 소유권을 이전할 때 사용됩니다.
소멸자 (Destructor)
소멸자는 객체가 소멸될 때 자동으로 호출되는 특별한 멤버 함수입니다.
주로 동적으로 할당된 리소스를 해제하는 데 사용됩니다.
생성자 초기화 리스트
생성자에서 멤버 변수를 초기화하는 효율적인 방법입니다.
위임 생성자 (C++ 11)
한 생성자가 같은 클래스의 다른 생성자를 호출할 수 있습니다.
명시적 생성자 (explicit)
암시적 형변환을 방지하기 위해 사용됩니다.
초기화 순서
멤버 변수의 초기화 순서는 클래스에서 선언된 순서를 따릅니다, 초기화 리스트의 순서와는 무관합니다.
가상 소멸자
상속 관계에서 기본 클래스의 소멸자를 가상으로 선언하여 적절한 소멸자 호출을 보장합니다.
실습 : 메모리 관리 클래스 구현
다음 요구사항을 만족하는 메모리 관리 클래스를 구현해보세요.
- 동적으로 할당된 정수 배열을 관리
- 복사 생성자, 이동 생성자, 소멸자 구현
- 배열 크기 조정 기능 구현
연습 문제
String
클래스를 구현하세요. 이 클래스는 문자열을 동적으로 할당하고 관리해야 합니다.
복사 생성자, 이동 생성자, 소멸자를 구현하고, 문자열 연결 연산자(+)를 오버로딩하세요.
참고자료