Сравните 2 производных объекта базового класса

У меня есть что-то вроде этого:

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

Решение

#include <typeinfo>

void Collision()
{
if (typeid(obj[x][y]) != typeid(B) && typeid(obj[x][y]) != typeid(C))
doStuff();
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector