C++/Class 2021. 3. 15. 23:34

소멸자 (Destructor)

  • 인스턴스가 메모리에서 해제될 때 내부에서 호출되는 함수

    • 메모리 누수를 방지할 때 필수적이다.
    #include <iostream>
    
    class Simple
    {
      int        num_;
    
    public:
      Simple(const int& num_in)
        : num_{num_in}
      {
        std::cout << "Constructor " << num_ << '\n';
      }
    
      ~Simple()
      {
        std::cout << "Destructor " << num_ << '\n';
      }
    };
    
    int        main()
    {
      {
        Simple s0{ 0 };
        Simple s1{ 1 };
      }
      std::cout << std::endl;
      {
        Simple *s0 = new Simple{ 0 };
        Simple s1{ 1 };
    
        delete s0;
      }
    }
    
    /* stdout
    Constructor 0
    Constructor 1
    Destructor 1
    Destructor 0
    
    Constructor 0
    Constructor 1
    Destructor 0
    Destructor 1
    */

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

C++ 체이닝(Chaining)  (0) 2021.03.15
C++ this  (0) 2021.03.15
C++ 변환 생성자(Converting Constructor)  (0) 2021.03.15
C++ 복사 생성자(Copy Constructor)  (0) 2021.03.12
C++ 위임 생성자 (Delegating Constructor)  (0) 2021.03.12