반응형

.** 본 게시물은 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();
}


반응형
Posted by tislqhf

블로그 이미지
개인적인 공부자료 정리하는 공간
tislqhf

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.4
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함