27. 클래스 생성자와 소멸자

Yongs12 ㅣ 2023. 6. 18. 17:02

생성자는 객체가 생성될 때 객체를 초기화하는 특수 멤버 함수이다.
소멸자는 객체가 소멸될 때 호출되는 특수 멤버 함수이다.
메모리와 같은 리소스를 할당 및 해제하고 객체를 초기화 및 종료하는데 사용된다.



클래스 생성자와 소멸자 
직접 만들지 않아도 자동으로 생성 후 호출이 된다.
하지만 아무런 기능이 없는 상태로 호출이 됨

// 멤버 변수 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 함수가 종료되면 자동으로 소멸자가 호출 된다.



디스어셈블리 코드를 보면 호출되는 생성자와 소멸자를 볼 수 있다.

Person person; 생성후 call 되는 생성자 함수와 return 0; 을 지나 main함수가 종료될 때 소멸자 함수가 call 된다.





'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