Objektklasse prüfen
-
Hallo,
aus C# kenne ich das Schlüsselwort "is", womit ich prüfen kann, ob ein Objekt eine Instanz einer bestimmten Klasse ist:
if (inst is Class1)Wie setze ich sowas in C++ um?
lg Neulinger
-
Hi,
da kannst du nach typeid suchen, gibt's auch viele Threads hier im Forum. Allerdings solltest Du Dir überlegen, warum Du überhaupt die Klasse bestimmen möchtest... Meistens lässt sich das eleganter lösen.
-
Ja auf typeid bin ich auch schon oft gestoßen, bekomme es aber an der Stelle nicht zum laufen...
Verallgemeinert:
class A {}; class B : public A {}; class C : public B {}; class D : public B {}; int main(A* inst) { // hier soll überprüft werden, ob A eine Instanz von C, D oder weder noch ist }
-
Neulinger schrieb:
Ja auf typeid bin ich auch schon oft gestoßen, bekomme es aber an der Stelle nicht zum laufen...
Verallgemeinert:
class A {}; class B : public A {}; class C : public B {}; class D : public B {}; int main(A* inst) { // hier soll überprüft werden, ob inst eine Instanz von C, D oder weder noch ist }
-
Ist dynamic_cast vielleicht was für dich?
Wobei dies in 99% der Fälle ein Designfehler ist, wenn Anfänger solche Fragen stellen.
-
Neulinger, hast du deinen alten Thread schon wieder vergessen? Ich werde hier nicht wiederholen, was ich dort schon zur Begründung gesagt habe, warum explizite Typunterscheidungen schlecht sind.
-
Bitte das Thema im alten Thread weiterführen.