Ableitungshierarchie und dynamic_cast
-
Hi,
ich habe folgende Frage. Ich möchte eine vector sortieren. Dabei sollen die Elemente aufsteigend von speziell nach allgeimein sortiert werden.Zum Beispiel:
class Base{ } class A : public Base {} class B : public A{} class C : public B {}Nach der sortierung sollen alle elemente die den Laufzeittyp C haben als erstes im vector stehen. Dies soweit auch kein Problem.
Mein Problem betrifft dann dieses Beispielclass Base{ } class D{ } class E{ } class A : public Base, D {} class B : public A, E{} class C : public B {}Wie könnte dort eine Ordnung aussehen? Wäre für Ratschläge offen. Bis jetzt ist meine Idee D und E ans Ende der liste zu setzen nach erstem vorkommen.
-
Kommt letztendlich darauf an, was du damit bezwecken möchtest. Wenn du nach tiefe in der Klassenhierarchie sortieren möchtest, wäre ans Ende sicherlich richtig.
-
Gibt viele mögliche Anordnungen.
Mal nur C B anschauen.
class C : public B {}
class B : public A, E{}
Soweit klar.Jetzt A E dazu.
class C : public B {}
class B : public A, E{}
class A : public Base, D {}
class E{ }
//Mit 2 möglichen Plätzen für Doder, ist egal
class C : public B {}
class B : public A, E{}
class E{ }
class A : public Base, D {}
//Mit 1 möglichem Platz für D
-
Danke für das Stichwort. Topologisches Sortieren!