Betrachten Sie die folgende Gruppe von Klassen/Schnittstellen:
class IFish{
public:
virtual void eat() = 0;
}
class IFriendly{
public:
virtual void protect() = 0;
}
class IAggresive{
public:
virtual void attack(Point inDest) = 0;
}
class CDolphin : public IFish, IFriendly{
eat...
protect....
}
class CShark : public IFish, IAggresive{
eat....
attack...
}
Jetzt habe ich die folgende Klasse
void CDiver
{
Void shouldRunAway(IFish* fish)
{
//???
}
}
Meine Frage ist, kann "shouldRunAway" aus dem Fisch-Argument extrahieren, ob es ein IAggresive oder IFreindly ist (wenn es überhaupt einer von diesen ist...) gibt es eine Art von Casting, die helfen kann?