객체 생성 연산자 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();
}
//---
}
|
개체 설명자는 메모리 주소에 대한 포인터가 아닙니다.
새 연산자로 만든 개체는 삭제 연산자를 사용하여 명시적으로 제거해야 합니다.
더 보기
변수 초기화, 가시성 범위 및 변수 수명, 오브젝트 생성 및 삭제