【发布时间】:2022-11-16 17:11:33
【问题描述】:
如果我有一个继承自基类的类,我可以将该基类用作 C++ 中的变量类型吗?
class Component {
// Code here
};
class TransformComponent : public Component {
// Code here
};
class Entity {
// Code here
Component *getComponent(Component *searchComponent) {
// Code Here
}
};
正如您在这里看到的,我使用基类“Component”作为返回类型和变量类型。问题在于用户可能会输入“TransformComponent”。我问这个的唯一原因是因为“TransformComponent”类继承自“Component”类,可能有办法做到这一点?
<Entity>.getComponent(Component &TransformComponent());
我正在寻找的答案既适用于返回类型,也适用于变量类型。
【问题讨论】:
-
搜索关键字:
virtual或std::variant(这是两种不同的解决方案)
标签: c++ function oop variable-types