对象创建操作符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操作符直接移动。
另见
变量初始化 , 可见范围和变量使用期 , 创建和删除对象