Как правильно провести сравнение для базового класса?

У меня есть базовый класс

class Animal 

с чистыми виртуальными функциями и набор производных классов

class Monkey : public Animal 
class Snake : public Animal

Я хочу реализовать операцию сравнения, чтобы, если я встречу два указателя на Животные в моем коде

Animal* animal1
Animal* animal2

Я могу сравнивать их друг с другом. Сравнение должно привести к ложному результату, если animal1 и animal2 относятся к разным производным классам. Если они принадлежат к одному производному классу, должен быть возвращен результат оператора сравнения.

Может ли кто-нибудь указать мне хороший способ реализации этого?

6
задан Hans 18 September 2010 в 19:22
поделиться