c++ - 如何将 vector 的单元格传递给 C++ 中的函数?

标签 c++ class object vector pass-by-reference

我想创建一个函数,从 vector 的单元格中获取一个对象并对其进行修改。首先,我需要通过引用该函数来传递此单元格,但我做不到。

void circleChoiceOne(Circle& object);
vector<Shape*> shapeArr;
int main()
{
    circleChoiceOne(shapeArr[choice]);
    return 0;
    system("PAUSE");
}

我得到的错误指向第 7 行,它说: Circle & 类型的引用不能用 Shape * 类型的值初始化。

最佳答案

shapeArr[choice] 将返回一个 Shape* 但该方法需要一个 Circle&

我假设 CircleShape 的子类。

您将需要一个dynamic_cast 来将Shape* 向下转换为Circle*,然后您需要取消引用指向值,以便您可以通过引用传递它。

您需要验证 Shape* 实际上指向一个 Circle(与 RectangleTorus) 在转换之前处理并处理它没有的情况。

关于c++ - 如何将 vector 的单元格传递给 C++ 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638467/

相关文章:

c++ - 指向对象的指针 == 指向第一个成员的指针?

java - 检查类是否存在于 Java 类路径中而不运行其静态初始化程序?

具有字典属性的 Python 对象在每次循环迭代中附加,而不是被垃圾收集

C# Foreach 更改某些对象属性?

javascript - 如何在 localStorage 中存储对象?

c++ - 只允许访问对象的成员,而不是对象本身

c++ - 实现复制构造函数

C++ 删除不应该执行任何操作

c++ - 未使用的类成员会使代码自行损坏吗?

ios - 如何在 Swift 的另一个类中设置变量值