我有这样的事情:
class A
{
public:
A();
~A();
};
class B : public A
{
//stuff
};
class C : public A
{
//stuff
};
class D : public A
{
//stuff
};
void Collision()
{
//obj is a multidimensional array of class A that stores objects from class B, C and D
if(obj[x][y] != B && obj[x][y] != C) //type name is not allowed
doStuff();
}
我收到错误:类型名称不允许
我知道没有比较像这样的对象,但我不知道应该怎么做。
答案 0 :(得分:3)
#include <typeinfo>
void Collision()
{
if (typeid(obj[x][y]) != typeid(B) && typeid(obj[x][y]) != typeid(C))
doStuff();
}