Abfragen ob Variable initialisiert ist



  • Hi,
    ich hab ne Uniaufgabe wo ich ein Baumkonstrukt als Klasse programmieren soll. Dazu soll jeder Knoten eine ID bekommen, die ich im Konstruktor auf 0 setzen soll und dann aber auch eins hochzählen soll.

    Jetzt ist mir nicht ganz ersichtlich, wie das funktionieren soll. Denn wenn ich in der main funktion einen childknoten erstelle, dann hat der ja die ID 1, so wie jeder andere Knoten auch 😕

    Deswegen meine Frage, wie ich eine ID in der Klasse initialisier, die dann auch immer einen um 1 höheren Wert hat.

    Ich hoffe ich habe mich zu später Stunde verständlich ausgedrückt 😃



  • Gib der Klasse eine statische Variable, die die Anzahl der Instanzen des Objektes zählen soll. Im Konstruktor erhöhst du diese Zählvariable und weist der ID-Variable dessen Wert zu.



  • Du kannst z.B eine statische Variable dazu benutzen.

    class node
    {
     static int next_id;
     int id;
     public:
       node (){ id = next_id++; } // id zuweise und inkrementieren
    };
    
    int node::next_id = 0; // initialisierung der Variable
    


  • besten Dank, funktioniert wunderbar! 🙂


Anmelden zum Antworten