소멸자란?
C++ 에서 소멸자란 객채의 사용이 끝나고 메모리가 반환될때 자동으로 실행되는 클래스의 멤버 함수를 뜻합니다.
지난 포스팅에서 배운 생성자와 같이 사용이 됩니다.
만약 따로 소멸자를 만들어 주지 않으면 컴파일시 자동으로 소멸자가 생성이 됩니다.
소멸자 사용이유
클래스의 객체가 소멸되기 전에 마지막으로 사용되는 함수이기 때문에 동적메모리를 사용하거나, 파일 또는 데이터베이스를 사용할때 많이 사용이 됩니다.
소멸자 사용법
- 소멸자 이름은 클래스 이름과 같아야합니다.
- 소멸자 이름 함수 앞에 ' ~ ' 를 붙여줍니다.
- 소멸자는 인수가 없습니다.
- 소멸자는 반환을 하는 값이 없습니다.
- 소멸자는 클래스당 하나만 존재합니다.
형식
~클래스이름( ){ 실행할 코드 }
소멸자 사용 예시 코드
캐릭터라는 클래스를 만들어서 warrior 라는 객채를 만들고 프로그램이 종료될때 자동으로 소멸자가 실행됩니다.
#include <iostream>
#include <string>
using namespace std;
class
Character {
private:
string name;
int exp;
int hp;
int mp;
public:
//생성자
Character(string name, int hp, int damage)
: name(name), exp(0), hp(hp), mp(damage)
{
cout << "\n게임이 시작되었습니다." << endl;
}
// 소멸자
~Character()
{
cout << "\n게임이 종료되었습니다."<<endl;
}
};
int main(void) {
Character warrior("전사", 100, 50);
return 0;
}
실행 결과
객채를 만들고 프로그램을 종료하니 다음과 같은 결과를 확인할 수 있습니다.
오늘의 포스팅 정리
오늘은 소멸자가 무엇인지와 사용법에 대해서 알아보았습니다.
소멸자에 대해 이해를 돕기위해 간단하게 코드를 만들고 테스트를 해보았습니다.
다음 포스팅에서는 복사생성자에 대해 알아보고 소멸자에 대해 더 깊게 알아보겠습니다.
반응형
'개발 > C++' 카테고리의 다른 글
[C++] 초기화 리스트? 생성자와 멤버 초기화리스트를 만들어보고 사용해보기~!! (0) | 2022.11.29 |
---|---|
[C++] 생성자란? Constructor 란? 생성자를 만들어보고 사용해보기~!!! (0) | 2022.11.27 |
[C++] cout 출력(Output) 하기~! 나도 할 수 있다 개발!!!! (0) | 2022.10.28 |
[C++] 함수 포인터 란? 함수 포인터 만들고 사용하기 (function pointer) (0) | 2022.10.28 |
댓글