본문 바로가기

[C++]동적으로 객체 생성하기.

반응형

객체의 생성

1.메모리 할당.

2.생성자 호출

   

stack영역에 있는 포인터가 heap영역에 있는 객체를 가르킨다.

   

main문에 변수를 정적할당을 하게 되면 main문이 끝나면 변수는 메모리에서 해제가

되지만 동적할당을 해놓으면 delete문을 만나기까지 계속된다.

   

객체의 경우의 경우에는 단순히 객체 하나만을 동적으로 생성하는 경우가 많다.

포인터를 사용해서 객체를 다루는 경우가 많음. 상속과 관련해서도 포인터를 통한 객체의 사용은 매우 중요한 주제다.

   

객체를 동적으로 생성할 때도 new연산자 사용.

객체의 경우에는 생성자 호출이라는 문제가 있기 떄문에 기존에 new연산자를 사용하는 방법이랑은 다름.

   

   

#include "point.h"

   

int main()

{

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

  Point pt(5050);

   

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

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

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

  Point* p3 = new Point( pt);    // 복사 생성자 사용

   

  // 객체들의 내용을 출력한다.

  p1->Print();  // == (*pt1).Print();

  p2->Print();

  p3->Print();

   

  // 동적으로 생성된 객체들을 정리한다.

  delete p1;

  delete p2;

  delete p3;

  p1 = p2 = p3 = 0;

   

  return 0;

}

   

Point(100,100) - 호출될 생성자 지정 및 인자 전달.

   

   

반응형
-->