查看对象是什么类 [英] Seeing what class an object is
本文介绍了查看对象是什么类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我在C ++中有一个指向基类A
的指针,我怎么能在我的代码中告诉该指针是到派生类B
或C
的呢?
If I have a pointer to a base class A
in C++, how would I be able to tell in my code that the pointer is to a derived class B
or C
?
推荐答案
假定基类A
是多态的(即它至少具有一个虚函数),则可以使用dynamic_cast
.给出A* ap;
:
Assuming the base class A
is polymorphic (i.e. it has at least one virtual function), you can use dynamic_cast
. Given an A* ap;
:
if (B* bp = dynamic_cast<B*>(ap)) {
// the object is a B
}
else if (C* cp = dynamic_cast<C*>(ap)) {
// the object is a C
}
这篇关于查看对象是什么类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文