티스토리 뷰

C C++

[C++] 객체 생성의 두가지 방법과 차이점

개발하는꼬물이 2018. 4. 6. 15:00

C++ 클래스의 객체 생성 방법에는 다음과 같은 2가지 방법이 있다.

간단하게 말하자면, 두 방식의 차이는 '메모리가 어떤 영역에 할당되느냐' 의 차이!


1. 일반적인 객체 생성 방법

  - 형식 : 클래스명 객체명;

TestClass test;

  - 메모리가 할당되는 영역 : 스택(Stack) 영역

  - 할당 된 메모리는 함수 호출 완료 시 자동으로 해제 됨



2. 객체 동적 할당

  - 형식 : 클래스명 *객체명 = new 클래스명();

TestClass *test = new TestClass(); 

또는

TestClass *test;
test = new TestClass();  // 메모리 동적 할당

  - 메모리가 할당되는 영역 : 힙(Heap) 영역

  - 할당 된 메모리는 사용자가 delete를 사용하여 임의로 해제하기 전까지 유지 됨


  +) 메모리 누수 방지를 위해, new를 통한 동적 할당을 사용할 경우 프로그램 종료 전 delete를 호출하여 

      할당 된 메모리를 꼭!!! 해제시켜줘야 한다.



'C C++' 카테고리의 다른 글

클래스가 서로를 참조할 때 오류 해결 방법  (0) 2017.03.15
댓글