关于以下程序,我有 2 个问题: 1. 程序是否仅将元素(类型矩形和六边形)创建为动态的,或者指向它们的指针也是动态的?
2.为什么程序最后没有删除。例如这样的事情:(如果我正确地假设只有元素是动态的..)
for(i=0;i<3;i++)
delete shapeArray[i];
非常感谢,这个网站在我的老师无法帮助的事情上帮助了我很多!石然
该计划是:
int main()
{
// Create array of pointers to Shapes of various types.
const int NUM_SHAPES = 3;
Shape * shapeArray[] = { new Hexagon(),
new Rectangle(),
new Hexagon()
};
// Set positions of all the shapes.
int posX = 5, posY = 15;
for (int k = 0; k < NUM_SHAPES; k++)
{
shapeArray[k]->setPosition(posX, posY);
posX += 10;
posY += 10;
};
// Draw all the shapes at their positions.
for (int j = 0; j < NUM_SHAPES; j++)
{
shapeArray[j]->draw();
}
return 0;
}