C++

생성자와 소멸자

생성자(Constructor)는 객체가 유효한 초기 상태로 시작하도록 만들고, 소멸자(Destructor)는 수명이 끝날 때 보유한 자원을 정리합니다. 두 함수는 객체의 수명 주기(Lifetime)와 소유권 계약을 코드에 드러냅니다.

객체가 생성될 때 초기화할 자원과 소멸될 때 정리할 자원을 구분하고, 생성자와 소멸자를 설계하는 기준을 정리합니다.

생성자와 소멸자 흐름

1

생성자 (Constructor)

생성자는 클래스의 객체가 생성될 때 자동으로 호출되는 특별한 멤버 함수입니다.

2

소멸자 (Destructor)

소멸자는 클래스의 객체가 소멸될 때 자동으로 호출되는 특별한 멤버 함수입니다.

3

기본 생성자 (Default Constructor)

만약 프로그래머가 클래스에 어떤 생성자도 명시적으로 정의하지 않으면, 컴파일러는 자동으로 기본 생성자(Default Constructor)를 생성합니다.

4

Rule of Three/Five/Zero

클래스가 동적으로 할당된 메모리나 파일 핸들 같은 자원(Resource)을 소유하는 경우, 생성자와 소멸자 외에 다음 특별 멤버 함수들도 명시적으로 정의하거나 = default, = delete를 사용해야 합니다.