소멸자
소멸자는 객체가 소멸될 때 실행되는 메서드
특징
1. 오직 한 개 존재(인자 x)
2. 반환타입이 없다.
3. 메소드명이 클래스명과 같다.
디폴트 소멸자
소멸자가 없어도 기본소멸자가 호출된다.
명시적 디폴트 소멸자
default를 통해 명시적으로 디폴트소멸자를 사용할 수 있다.
소멸자 호출
스택에 할당 된 경우에는 스택에서 제거될 때 소멸자가 호출된다.
힙에 할당 된 경우에는 자동으로 제거되지 않는다.
delete 키워드
delete를 통하여 힙에 할당된 객체의 소멸자 호출이 가능하다.
댕글링 포인터
소멸자 호출 후 m_iHealth는 할당받은 주소값을 가리키고 있다.
main 함수가 끝나며 player의 소멸자를 호출하고
m_iHealth가 가리키고 있는 주소에 접근해 지울 때 런타임에러가 난다.
댕글링 포인터 방지
지우기 전에 포인터의 값이 nullptr인지 검사하여 안정성을 높일 수 있다.
nullptr 객체 소멸
객체가 nullptr일 경우 소멸자가 호출되지 않는다.
'C++' 카테고리의 다른 글
[C++] const (0) | 2023.05.13 |
---|---|
[C++] 복사대입연산자 (0) | 2023.05.12 |
[C++] 복사생성자 (0) | 2023.05.11 |
[C++] 생성자 (0) | 2023.05.09 |
[C++] 오버로딩 (0) | 2023.05.08 |