본문 바로가기

소멸자

반응형
  • 객체를 해제할 때

       

    1.소멸자

    2.메모리

       

    형식~AA(void) //소멸자.

       

    반환형이 없음.

    함수 over loading이 불가능.

    매개변수도 가질 수 없음.

    소멸자는 클레스에서 오직 하나만 존재할 수 있다.

    >>> 매개변수 자체를 받을 수 없기 때문에.

       

       

    #include <iostream>

    using namespace std;

       

    class DynamicArray

    {

    public:

      int* arr;

       

      DynamicArray (int arraySize);

      ~DynamicArray();

    };

       

    DynamicArray::DynamicArray(int arraySize)

    {

      arr = new int [arraySize];

    }

       

    DynamicArray :: ~DynamicArray()

    {

       

      delete[] arr;

      arr = NULL;

    }

       

    int main()

    {

       

      int size;

      cout << " 개의 정수를 입력하시겠소? ";

      cin >> size;

       

      DynamicArray da(size);

       

      for(int i =0; i < size; ++i)

        cin >> da.arr[i];

       

      for ( i= size - 1; i >=0; --i)

        cout << da.arr[i] << " ";

       

      cout << "\n";

       

      return 0;

       

    }

       

       

       

    화면 캡처: 2010-06-16, 오전 10:43

       

       

    DynamaicArray 클래스는 내부적으로 동적 메모리를 할당.

    DynamicArray 타입의 객체 da를 생성하면서 필요한 메모리 크기를 인자로 전달.

    함수가 끝나면 자동적으로 객체가 소멸되면서 소멸자가 호출되고, 소멸자 안에서 arr이

    가르키는 메모리를 해제한다.

       

       

       

       

       

반응형
-->