2017. 11. 25. 20:32 C++/공부
C++] 기초(13) - 소멸자(Destructor)
반응형
.** 본 게시물은 C++을 복습하며 정리하는 글입니다. 틀린 부분이 있다면 지적 부탁드립니다!! 현재 "윤성우의 열혈강의 C++"교재로 공부중이며 좀 더 상세한 설명을 원하시는 경우에는 책을 구매해서 찾아보시길 권장합니다.
[들어가기 전]
생성자를 사용해 객체를 생성한 후, 해당 객체에 할당된 데이터를 해제하기 위해 소멸자를 호출해야 한다.
[설명]
생성자는 객체 생성 시 반드시 호출된다.
또한, 소멸자 역시 객체 소멸 시 반드시 호출된다.
소멸자는 대게 생성자에서 할당한 리소스의 소멸에 사용된다. 생성자 내에서 new 연산자를 이용해서 할당해 놓은 메모리 공간이 있다면, 소멸자에서 delete 연산자를 이용해서 메모리 공간을 소멸한다.
[소멸자의 특징]
1) 클래스의 이름 앞에 '~'가 붙은 형태이 이름을 가짐
2) 반환형이 선언되어 있지 않으며, 실제로 반환하지 않음
3) 매개변수는 void형으로 선언되어야 하며, 오버로딩과 디폴트 값 설정 불가
ex)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | // Tmp.h #include <iostream> using namespace std; class CTmp { private : int num1; int num2; int * m_pNum; public : CTmp(); ~CTmp(); void PrintValue(); }; // Tmp.cpp #include "Tmp.h" CTmp::CTmp() { m_pNum = new int ; } CTmp::~CTmp() { delete m_pNum; } void CTmp::PrintValue() { cout << num1 << " / " << num2 << endl; } void main() { CTmp tmp1; tmp1.PrintValue(); } |
반응형
'C++ > 공부' 카테고리의 다른 글
C++] 기초(15) - 정적 변수/함수(Static Variable/Func) (0) | 2023.09.27 |
---|---|
C++] 기초(14) - 복사생성자(Copy Constructor) (0) | 2023.09.10 |
C++] 기초(12) - 생성자(Costructor) (0) | 2017.11.25 |
C++] 기초(11) - 캡슐화(Encapsulation) (0) | 2017.10.15 |
C++] 기초(10) - 정보은닉(Information Hiding) (0) | 2017.10.15 |