我正在使用 C++ 虚函数。我有一个基类 treeNode 和两个派生类 splitNode 和 leafNode。 splitNodes 中的一些指针指向其他节点,这些节点可能是 splitNode 或 leafNode。在运行时,我如何检查指针是否指向叶节点或拆分节点,而不更改节点的结构(即,我不想向它们添加任何新函数)。
问候
最佳答案
不清楚您为什么要这样做,但您可以使用 dynamic_cast
:
treeNode* theNode = ....;
splitNode sNode* = dynamic_cast<splitNode*>(theNode);
bool isSplitNode = sNode != nullptr;
或者只是
bool isSplitNode = dynamic_cast<splitNode*>(theNode);
如果正确使用多态性,则不必执行此操作。
关于c++ - 如何在运行时为虚函数获取指针的确切类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19096706/