Prüfung ob object typ von bestimmter Klasse



  • Hallo, ich möchte prüfen, ob ein Objekt typ von einer bestimmten Klasse ist. Wie kann ich dies in c++ (cli) prüfen? In java gibt es ja instanceof als Schlüsselwort. Besitzt c++ etwas ähnliches?

    Mir ist bisher nur der Weg eingefallen, das Objekt zu Casten und wenn eine InvalidCastingException geworden wird, dann ist das Objekt nicht vom Typ X. Jedoch finde ich diese Art und Weise äußerst unschön. Daher denke ich, dass es ein Sprachkonstrukt geben muss.

    MeineKlasse^ mk = (MeineKlasse^)ojectInstance; //Exception dann wäre es keine Instanz von MeineKlasse
    

    Vielen Dank für eure Hilfe schonmal im vorraus 🙂



  • benutze einen dynamic_cast<..>



  • Hey, das Casten funktioniert ja.

    Ich habe eine Funktion, welche ein Objekt vom typen Object als Parameter bekommt. Und das soll geprüft werden. Wenn es Typ1 ist dann soll es zu Typ1 gecasted werden und bei Typ2 zu Typ2 gecasted werden.

    Ich beschreibe es mal als Pseudocode:

    void DoSomething(Object^ o)
    {
       if(o isFromClass Typ1)
       {
          Typ1^ t1  = (Typ1^)o;
          RufeFunktion1Auf(t1);
       }
       else if(o isFromClass Typ2)
       {
           Typ2^ t2  = (Typ2^)o;
           RufeFunktion2Auf(t2);
       }
    }
    


  • Ich sags ja... dynamic_cast<..>

    Falls der Cast fehlschlägt ist das Handle Null.

    Ausserdem... wäre ev. eine virtuelle Funktion angesagt?


Log in to reply