我正在使用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/