gpt4 book ai didi

C++。指针 vector 和使用 vector

转载 作者:行者123 更新时间:2023-11-28 05:25:44 24 4
gpt4 key购买 nike

在我的部分作业中,我需要创建一个指向形状对象的指针 vector 。我有几个不同的类,基类 Shape 和一些派生类,例如 Circle 和 Rectangle。主要是我需要构建 vector ,然后将 vector 传递给一个函数,该函数将扩展形状的维度。所以该函数会将半径、长度和宽度乘以某个数。到目前为止,这是我的代码:

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;
}
}

由于弹出的错误,这是错误的。总而言之,我需要帮助创建指针 vector 并在函数中使用该 vector 。提前致谢。

最佳答案

shapes[i] 是一个指针。您不能将其乘以 factor。您需要取消引用指针 *shapes[i]。这假定您的 Shape 类(和派生类)覆盖了 *(乘法,而不是取消引用)运算符。

当你修复它时,将它重新分配给 shapes[i] 也会失败。可能您也需要取消引用它。

关于C++。指针 vector 和使用 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com