我想创建一个函数,从 vector 的单元格中获取一个对象并对其进行修改。首先,我需要通过引用该函数来传递此单元格,但我做不到。
void circleChoiceOne(Circle& object);
vector<Shape*> shapeArr;
int main()
{
circleChoiceOne(shapeArr[choice]);
return 0;
system("PAUSE");
}
我得到的错误指向第 7 行,它说:
Circle &
类型的引用不能用 Shape *
类型的值初始化。
最佳答案
shapeArr[choice]
将返回一个 Shape*
但该方法需要一个 Circle&
。
我假设 Circle
是 Shape
的子类。
您将需要一个dynamic_cast
来将Shape*
向下转换为Circle*
,然后您需要取消引用指向值,以便您可以通过引用传递它。
您需要验证 Shape*
实际上指向一个 Circle
(与 Rectangle
或 Torus
) 在转换之前处理并处理它没有的情况。
关于c++ - 如何将 vector 的单元格传递给 C++ 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638467/