對於我的任務的一部分,我需要創建一個指向矢量形狀對象的向量。我有幾個不同的類,基類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
矢量由你的老師授權的指針嗎?我這樣問是因爲我一般不推薦它。 –
如果你真的需要一個指針向量,你想使用智能指針而不是行指針。 –