Bestimmen des Objekttyps in C ohne „instanceof“
Um den genauen Typ eines Objekts in C zu bestimmen, verwenden wir eine Technik ähnlich der von Java „ Schlüsselwort „instanceof“. Dabei handelt es sich um eine Kombination aus dynamischem Casting und RTTI (Run-Time Type Information).
Dynamisches Casting mit aktiviertem RTTI:
if(NewType* v = dynamic_cast<NewType*>(old)) { // old successfully casted to NewType // Perform NewType-specific operations (e.g., v->doSomething(); ) }
Hinweis:Diese Methode erfordert Compilerunterstützung für RTTI.
Überlegungen zu Dynamic Casting:
Typenaufzählungsansatz:
switch(old->getType()) { case BOX: Box* box = static_cast<Box*>(old); // Perform Box-specific operations break; // Additional cases for other types }
Vorteile:
Nachteile:
Das obige ist der detaillierte Inhalt vonWie kann ich den Typ eines Objekts in C bestimmen, ohne „instanceof' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!