8.6 소멸자(Destructor)
#include <iostream>
using namespace std;
class Simple
{
public:
int m_id;
Simple(const int& id_in)
: m_id(id_in)
{
cout << "Constructor" << " " << m_id << "\n";
}
~Simple()
{
cout << "Desctructor" << " " << id << "\n";
}
}
int main()
{
Simple s1(0);
Simple s2(1);
// Constructor 0
//Constructor 1
// Destructor 1
// Destructor 0
return 0;
}
class IntArray
{
private:
int *m_arr = nullptr;
int m_length = 0;
public:
IntArray(const int length_in)
{
m_length = length_in;
m_arr = new int[m_length];
}
~IntArray()
{
if (m_arr !=nullptr) delete[] m_arr; // 소멸하면서 delete되도록 하면 memory 누수가 생기지 않음
}
int getLength(){ return m_length;}
}
int main()
{
while (true)
{
IntArray my_int_arr(10000); // memory leak
}
return 0;
}