c++ - 从接口(interface)转换为实现接口(interface)的类的子类

标签 c++ casting

<分区>

我们的项目中有一个带有 IGameObjects 映射的 Models_Manager 类

        std::map<std::string, IGameObject*> gameModelList;

我们这样添加对象

Models::Sphere* sphere = new Models::Sphere();
sphere->SetProgram(Shader_Manager::GetShader("textureShader"));
sphere->Create();
gameModelList["fireball"] = sphere;

稍后我们想再次访问球体。为此,我们希望从 IGameObject 转换为 Sphere。如何?谢谢

继承:

class Sphere : public Models::Model
class Model :public IGameObject

最佳答案

看来我需要使用 dynamic_cast

Models::Sphere* spherecast = dynamic_cast<Models::Sphere*>(gameModelList["fireball"]);

关于c++ - 从接口(interface)转换为实现接口(interface)的类的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786431/

相关文章:

c++ - 带有可选字段的 ASN.1 编码

c++ - 如何使用 llvm 链接器?

c# - 在 C# 上从 object[] 转换为 double[]

c++ - 将 C 字符串转换为 unsigned char 指针

java - 将对象强制转换为泛型类型的正确方法

java - 为什么Java中的除法只显示0?

c++ - 检测分组词的最佳方法

c++ - 洪水填充图像的图像处理

c++ - 如何从字符串中获取 clang::QualType?

c - double和float的比较,以及隐式转换