본문 바로가기

[C++]생성자와 소멸자의 호출 시점

반응형

생성자와 소멸자가 언제 호출되는지 정확하게 알아야 한다.

객체에 대한 포인터를 정의 할 떄 생성자가 호출된다는 것은 아님.
생성자는 new 연산자를 사용해서 동적으로 객체를 생성할 때 호출된다. 마찬가지로 소멸자는 delete 연산자를 사용해서 해제할 때 호출된다.

   

정적으로 생성한 객체와 동적으로 생성한 객체가 있는 예제.

   

#include "point.h"

   

int main()

{

  // 초기화용으로 객체를 만들어 둔다.

  Point pt(5050);

   

  // 동적으로 객체를 생성한다.

  Point* p1 = new Point();      // 디폴트 생성자 사용

  Point* p2 = new Point(100100);    // 인자있는 생성자 사용

  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
-->