对象创建操作符new

new 操作符自动创建一个相应大小的对象,称为对象构造函数并回转已经创建的对象描述符。失败的情况下,操作符返回一个与常量NULL相比较的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操作符直接移动。

另见

变量初始化可见范围和变量使用期创建和删除对象