对于我的任务的一部分,我需要创建一个指向矢量形状对象的向量。我有几个不同的类,基类Shape和几个派生类,如Circle和Rectangle。在主要中,我需要构造矢量,然后将矢量传递给将扩展形状的尺寸的函数。所以函数会将半径,长度和宽度乘以一定数量。这是我到目前为止的代码:C++。矢量指针和使用矢量
vector<Shape*> shapes;
shapes.push_back(circ1);
shapes.push_back(rect1);
与circ1和rect 1是来自类Circle和Rectangle的对象。我还定义了circ1和rect1,但没有在这里包含代码。
我的函数被调用expandAll(),这就是我试图做的:
void expandAll(vector<Shape*> shapes, int factor)
{
for (int i = 0; i < shapes.size(); i++)
{
shapes[i] = shapes[i] * factor;
}
}
这是错误的原因在于弹出错误。总而言之,我需要帮助创建一个指针向量并在函数中使用该向量。提前致谢。
“由于弹出的错误。”哪一个? – tkausl
矢量由你的老师授权的指针吗?我这样问是因为我一般不推荐它。 –
如果你真的需要一个指针向量,你想使用智能指针而不是行指针。 –