返回指针到继承的C 类
Returning pointer to inherited class C++
我有一个由node2D
继承的基类(node
),该基础是由CSprite2D
继承的(我正在使用游戏引擎)
我有一个从节点继承的对象的指针向量。
在我的功能CNode* getNodeByName(QString name)
中,我返回一个cnode,但我不能做
CSprite2D* sprite = getNodeByName("hello")
为什么是解决方法?我已经尝试过返回CSPRITE2D的返回,它像魅力一样工作。我已经尝试将我的功能声明为virtual CNode* getNodeByName(Qstring name)
ps:如果这很重要,我正在使用QT。而且,我是C 的新手,所以我可能会监督一些东西。
如果csprite2d继承了cnode(在您的问题中,您说的节点)可以执行以下操作:
CSprite2D* sprite = static_cast< CSprite2D* >(getNodeByName("hello"));
仅当您确定返回的对象是csprite2d*时,否则是 undefined行为。
您也可以使用Dynamic_cast(请参阅链接中的示例),Dynamic_cast WWILL返回null指针或演员阵容失败。
CSprite2D* sprite = dynamic_cast< CSprite2D* >(getNodeByName("hello"));
相关文章:
- 关于C++中具有多重继承"this"指针的说明
- 共享指针继承,而不先显式强制转换
- 派生类是从基类继承 v 指针并仅使用它,还是也有自己的 v 指针?
- 使用智能指针附加的继承对象的深层复制
- 嵌套类、继承和C++中的共享指针
- 删除C++中的继承类指针数组
- 具有虚拟指针和继承的 CPP 类大小
- 钻石继承虚拟成员铸造与指针
- 当键是虚拟继承中涉及的基类指针时,对 std::unordered_map 项的访问崩溃
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- cppyy 继承包含智能指针的类
- 作为模板参数的成员函数指针在继承的成员函数上失败,如何以及为什么?
- 是否可以将成员作为指针继承
- C++继承从基类指针访问派生类中的非虚拟函数
- 使用继承的指针列表复制构造函数或重载运算符=
- 带有此指针的模板类多重继承构造函数不起作用?
- 两个不同的继承指针地址是如何相等的
- 多重继承指针比较
- 多个继承指针和强制转换
- c++继承指针