- 객체를 해제할 때
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이
가르키는 메모리를 해제한다.
'About 프로그래밍!!! > C++' 카테고리의 다른 글
문자 비트변환 후 켜진비트셈, 소수판별,로또번호 (0) | 2010.06.16 |
---|---|
(0) | 2010.06.16 |
반드시 생성자가 있어야 하는 경우&생성자를 사용해 임시객체 만들기 (0) | 2010.06.16 |
문제풀이& 클래스,생성자 복습 (0) | 2010.06.16 |
복사 생성자 (0) | 2010.06.15 |