查看对象是什么类 [英] Seeing what class an object is

查看:88
本文介绍了查看对象是什么类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我在C ++中有一个指向基类A的指针,我怎么能在我的代码中告诉该指针是到派生类BC的呢?

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆