gpt4 book ai didi

C++通过指向对象的指针数组访问对象方法

转载 作者:太空宇宙 更新时间:2023-11-04 14:56:09 26 4
gpt4 key购买 nike

我无法弄清楚如何通过指向对象的指针数组访问 bject 方法。

我有一个环境类的env对象:

Environment env;

我的环境有一些对象指针以及一个动态指针数组:

    static Robot *robot;
static Obstacle *obstacle;
static Object **objects;

所以在对象里面我可以有机器人和障碍物:

但是现在当我想访问objects 数组中对象的方法时,我该怎么做呢?我试过了

    Environment env;
Robot *robot;

robot = env.objects[0];
robot->setSpeed(175);

但是没有用。我收到一个错误:

error: invalid conversion from ‘Object*’ to ‘Robot*’

我做错了什么?

PS:Robot继承自Object。

提前致谢!

最佳答案

由于 Robot 继承自 Object,因此您必须使用 static_castdynamic_cast转换指针:

robot = static_cast<Robot*>(Environment::objects[0]);

作为旁注,我还建议您使用 std::vector而不是数组,以及像std::shared_ptr这样的智能指针而不是原始指针。

关于C++通过指向对象的指针数组访问对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212957/

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