Attributliste und Wert von Attributen



  • Hallo zusammen,

    stehe gerade vor folgenden Problemen:

    1.Ich habe eine Methode list<string> attributliste(); Diese soll die Namen aller Attribute zurückgeben. Gibt es eine Möglichkeit die Attribute einer Liste abzufragen oder muss ich für jedes Attribut: listenname.push_back(attributname) aufrufen:

    2.Eine 2te Methode string attrib(string:attribname) soll mir den Wert des attributes mit dem namen attribname zurückliefern, hab leider keinerlei Idee wie man soetwas realisiert.

    Vielen Dank und Gruß

    wuschel



  • was meinst du mit attributen? aus einer eigenen klasse? wie liegen sie dann vor?



  • ich habe eine Klasse z.b

    class person{

    private:

    string _name;
    string _vorname;
    ....usw.
    };

    Jetzt würde ich gerne _name,_vorname usw. in die Attributliste aufnehmen.
    Dies möchte ich aber nicht für jede Klasse implementieren sondern in einer Oberklasse.

    Gruß wuschel



  • Nimm doch eine Map:

    std::map<std::string, std::string> _attrList;
    

    Dann hast du als Key alle Attributnamen und kannst intern einfach auf der Attributwerte zugreifen:

    _attrList["Name"] = "Rudi";
    


  • Dann hab ich ja immer noch das Problem, dass ich die Methode die die MAP füllt für jede Klasse definieren muss, so verringert sich ja nur die Anzahl der Methoden von 2 auf 1 oder?

    Gruß wuschel



  • Wie stellst du dir das denn vor?
    Da müsstest du schon mit dem Präprozessor tricksen oder ein kleines Tools schreiben, dass dir die Attributlisten erstellt und in die Klassen schreibt vorm Kompilieren.



  • Hallo

    Fakt ist, das in C++ zur Laufzeit keine Variablennamen mehr bekannt sind.
    Es gibt also keine Möglichkeit, eine Liste aus den Attributsnamen und -wert zu erstellen.
    Sondern du must schon selber ein Konzept einbauen. Der Vorschlag mit der Map in Zusammenarbeit mit Polymorphie (wenn nötig) ist sinnvoll.

    bis bald
    akari


Anmelden zum Antworten