Programming/C++

[C++] 소멸자

Jubil 2018. 1. 22. 17:16
반응형

<소멸자>


객체가 소멸할 때 자동으로 실행되는 함수입니다.


소멸자 이름은 생성자 이름에 "~" 기호를 앞부분에 붙인 형태입니다.


ex)  ~Student();  //소멸자



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
#include <iostream>
using namespace std;
 
class CopyObj
{
public:
    CopyObj(const double h, const double w);
    ~CopyObj();
    void showVar();
    
private:
    double height;
    double weight;
};
 
CopyObj::CopyObj(const double h, const double w) {
    height = h;
    weight = w;
}
 
CopyObj::~CopyObj() {
    cout << "***** 객체 소멸 *****" << endl;
}
 
void CopyObj::showVar() {
    cout << "키        : " << height << endl;
    cout << "몸무게    : " << weight << endl;
}
 
 
int main(){
    CopyObj p1(181.579.3); //객체 생성
    p1.showVar();
 
    cout << "************************" << endl;
 
    CopyObj p2(p1); //객체 생성, 복사 생성자 호출
    p2.showVar();
 
    return 0;
}
cs


코드는 지난 복사 생성자에서 사용한 코드에 소멸자를 추가해서 사용했습니다. main 함수에는 따로 작업을 하지 않았습니다.





결과는 이렇게 두 객체가 소멸되면서 소멸자가 두 번 호출되는 것을 볼 수 있습니다.

반응형

'Programming > C++' 카테고리의 다른 글

[C++] this  (0) 2018.01.22
[C++] 객체 포인터  (0) 2018.01.22
[C++] 생성자  (0) 2018.01.22
[C++] 클래스와 객체  (2) 2018.01.22
[C++] 함수 오버로딩  (0) 2018.01.22