64,651
社区成员
发帖
与我相关
我的任务
分享
class AAA
{
};
class BBB: public AAA
{
};
class CCC: public AAA
{
};
void test(AAA *obj)
{
// 如何判断obj是BBB还是CCC ??
}
#include <iostream>
using namespace std;
class AAA
{
public:
virtual ~AAA() {}
};
class BBB: public AAA
{
};
class CCC:public AAA
{
};
void test(AAA* obj)
{
BBB* pb;
CCC* pc;
pb = dynamic_cast<BBB*>(obj);
pc = dynamic_cast<CCC*>(obj);
if (pb)
{
cout << "BBB object\n";
}
if (pc)
{
cout << "CCC object\n";
}
}
int main()
{
BBB b;
CCC c;
test(&b);
test(&c);
return 0;
}
运行结果:
BBB object
CCC object