객체 생성 연산자 new

new 연산자는 자동으로 해당 크기의 객체를 만들고 객체 생성자를 호출한 후 생성된 객체의 설명자를 반환합니다. 오류가 발생하면 연산자는 NULL 상수와 비교할 수 있는 null 설명자를 반환합니다.

new 연산자는 클래스 객체에만 적용할 수 있습니다. 구조에는 적용할 수 없습니다

연산자를 사용하여 객체 배열을 작성해서는 안 됩니다. 이것을 하기 위해선, ArrayResize() 함수를 사용하십시오.

예제:

//+------------------------------------------------------------------+
//| Figure 생성                                                  |
//+------------------------------------------------------------------+
void CTetrisField::NewShape()
  {
   m_ypos=HORZ_BORDER;
//--- 가능한 7가지 도형 중 하나를 임의로 만듭니다
   int nshape=rand()%7;
   switch(nshape)
     {
      case 0: m_shape=new CTetrisShape1; break;
      case 1: m_shape=new CTetrisShape2; break;
      case 2: m_shape=new CTetrisShape3; break;
      case 3: m_shape=new CTetrisShape4; break;
      case 4: m_shape=new CTetrisShape5; break;
      case 5: m_shape=new CTetrisShape6; break;
      case 6: m_shape=new CTetrisShape7; break;
    }
//--- 그리기
   if(m_shape!=NULL)
     {
      //--- pre-settings
      m_shape.SetRightBorder(WIDTH_IN_PIXELS+VERT_BORDER);
      m_shape.SetYPos(m_ypos);
      m_shape.SetXPos(VERT_BORDER+SHAPE_SIZE*8);
      //--- 그리기
      m_shape.Draw();
    }
//---
  }

개체 설명자는 메모리 주소에 대한 포인터가 아닙니다.

새 연산자로 만든 개체는 삭제 연산자를 사용하여 명시적으로 제거해야 합니다.

더 보기

변수 초기화, 가시성 범위 및 변수 수명, 오브젝트 생성 및 삭제