我有这样的东西:
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();
}
我收到错误:不允许使用类型名称
我知道不应该像这样比较对象,但我不知道该怎么做。
最佳答案
#include <typeinfo>
void Collision()
{
if (typeid(obj[x][y]) != typeid(B) && typeid(obj[x][y]) != typeid(C))
doStuff();
}
关于c++ - 比较基类的 2 个派生对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20778270/