Русский

Справочник MQL4 Основы языка Операторы Оператор создания объекта new

Оператор создания объекта new

Оператор new автоматически создает объект соответствующего размера, вызывает конструктор объекта и возвращает описатель созданного объекта. В случае неудачи оператор возвращает нулевой описатель, который можно сравнивать с константой NULL.

Оператор new может быть применен только к объектам класса, к структурам он не применим.

Оператор не применяется для создания массивов объектов. Для этого следует использовать функцию ArrayResize().

Пример:

//+------------------------------------------------------------------+
//| Создание фигуры                                                  |
//+------------------------------------------------------------------+
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)
     {
      //--- начальные установки
      m_shape.SetRightBorder(WIDTH_IN_PIXELS+VERT_BORDER);
      m_shape.SetYPos(m_ypos);
      m_shape.SetXPos(VERT_BORDER+SHAPE_SIZE*8);
      //--- отрисуем
      m_shape.Draw();
     }
//---
  }

Следует отметить, что описатель объекта не является указателем на память.

Объект, созданный с помощью оператора new, должен быть явно уничтожен оператором delete.

Смотри также

Инициализация переменных, Область видимости и время жизни переменных, Создание и уничтожение объектов