생성자는 객체가 생성될 때 객체를 초기화하는 특수 멤버 함수이다.
소멸자는 객체가 소멸될 때 호출되는 특수 멤버 함수이다.
메모리와 같은 리소스를 할당 및 해제하고 객체를 초기화 및 종료하는데 사용된다.
클래스 생성자와 소멸자
직접 만들지 않아도 자동으로 생성 후 호출이 된다.
하지만 아무런 기능이 없는 상태로 호출이 됨
// 멤버 변수 name , age 와 멤버 함수 setName, setAge가 있는 Person이라는 클래스 정의
// 추가로 생성자와 소멸자를 추가
class Person
{
public:
// 생성자 호출은 클래스 이름을 그대로 사용한 함수이다.
Person()
{
std::cout << "Person 생성자 호출" << std::endl;
}
// 소멸자 호출은 ~를 추가한 클래스 이름을 그대로 사용한 함수이다.
~Person()
{
std::cout << "Person 소멸자 호출" << std::endl;
}
void setName(std::string name)
{
this->name = name;
}
void setAge(int age)
{
this->age = age;
}
private:
std::string name;
int age;
};
// Person 클래스의 객체인 person을 생성하게 되면 이 때 생성자가 호출 된다.
Person person;
// 또한 main 함수가 종료되면 자동으로 소멸자가 호출 된다.
디스어셈블리 코드를 보면 호출되는 생성자와 소멸자를 볼 수 있다.


'C, C++' 카테고리의 다른 글
| 30. 변환 생성자 (0) | 2023.06.20 |
|---|---|
| 29. 복사 생성자 (0) | 2023.06.19 |
| 26. 클래스 (0) | 2023.06.17 |
| 25. 함수 다중정의 (OverLoading) (0) | 2023.06.16 |
| 24. 범위기반 for문 (0) | 2023.06.15 |