반응형
생성자와 소멸자가 언제 호출되는지 정확하게 알아야 한다.
객체에 대한 포인터를 정의 할 떄 생성자가 호출된다는 것은 아님.
생성자는 new 연산자를 사용해서 동적으로 객체를 생성할 때 호출된다. 마찬가지로 소멸자는 delete 연산자를 사용해서 해제할 때 호출된다.
정적으로 생성한 객체와 동적으로 생성한 객체가 있는 예제.
#include "point.h"
int main()
{
// 초기화용으로 객체를 만들어 둔다.
Point pt(50, 50);
// 동적으로 객체를 생성한다.
Point* p1 = new Point(); // 디폴트 생성자 사용
Point* p2 = new Point(100, 100); // 인자있는 생성자 사용
Point* p3 = new Point( pt); // 복사 생성자 사용
// 객체들의 내용을 출력한다.
p1->Print();
p2->Print();
p3->Print();
// 동적으로 생성된 객체들을 정리한다.
delete p1;
delete p2;
delete p3;
p1 = p2 = p3 = 0;
return 0;
}
| 정적인 생성 | 동적인 생성 |
생성자의 호출 | 객체를 정의할 때 | new 연산자로 정의할 때 |
소멸자로 호출 | 객체를 정의한 함수가 끝날 때 | delete 연산자로 해제할 때. |
반응형
'About 프로그래밍!!! > C++' 카테고리의 다른 글
[C++]과제 8. (0) | 2010.06.24 |
---|---|
[C++]정적멤버 함수에서 객체 생성하기 (0) | 2010.06.23 |
[C++]동적으로 객체 생성하기. (0) | 2010.06.23 |
[C++]객체의 배열. (0) | 2010.06.23 |
[C++]멤버함수의 오버로딩. (0) | 2010.06.23 |