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 Beispiel

    class 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 D

    oder, 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

    http://de.wikipedia.org/wiki/Topologische_Sortierung



  • Danke für das Stichwort. Topologisches Sortieren!


Anmelden zum Antworten