tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
651
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ich weiss das es sowas gibt weiss nur nicht mehr wie.

    Ich möchte eine Klasse mit Informationen schreiben, in der Klasse soll eine Zahlervariable sein, die für alle Objekte den selben Wert hat und auch von allen erhöht werden kann.
    So ähnlich wie static.


    mfg
    umbrasaxum
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    So ähnlich wie static.
    Das is das was du suchst.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #include <iostream>
     
    using namespace std;
     
    class Object{
     
    public: 
            static int objectCounter;
     
            Object(){
                    objectCounter++;
            }
     
    };
     
    int Object::objectCounter = 0;
     
    int main(){
     
            Object o[3];
            cout << Object::objectCounter << " objects were constructed!" << endl;
            return 0;
    }

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Ich bin besser als ich gedacht hab

    Danke für die Hilfe.


    mfg
    umbrasaxum
     

  4. #4
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Es gibt natürlich auch noch die Möglichkeit das ganze über einen Konstruktor zu lösen

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
     
    #include <iostream>
     
    using namespace std;
     
    class Object{
     
           Object() {objectCounter=0;} //Der Konstruktor heißt immer gleich wie die Klasse
    public: 
            static int objectCounter;
     
            Object(){
                    objectCounter++;
            }
     
    };
     
     
    int main(){
     
            Object o[3];
            cout << Object::objectCounter << " objects were constructed!" << endl;
            return 0;
    }

    Der Konstruktor wird jedes mal dann aufgerufen wenn du die Klasse instanzierst
     

  5. #5
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Das lässt sich mit Sicherheit nicht kompilieren, weil der Defaultkonstruktor zweimal vorhanden ist. In C++ gibt es keinen Klassenkonstruktor wie in C#.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  6. #6
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Es geht aber, wenn du den ersten Constructor weglässt und dafür nur EINMAL IM GANZEN PROGRAMM irgendwo

    int Object::objectcounter = 0;

    schreibst.
     

  7. #7
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Ja, in eine .cpp, nicht in eine .h.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  8. #8
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    OK!
    Den default Construktor muss ich wohl überlesen haben
    Danke
     

  9. #9
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    @Steiner_B
    Trotzdem würde es nicht wie gewollt funktionieren, wenn ich nicht alle Objekte auf einmal erzeuge die ich brauch.


    mfg
    umbrasaxum
     

Ähnliche Themen

  1. Mit einer Klasse Objekte für eine andere Klasse erstellen.
    Von New2Java im Forum Java Grundlagen
    Antworten: 14
    Letzter Beitrag: 21.11.10, 12:37
  2. [C++] Zugriff auf ALLE Objekte einer Klasse
    Von Lord-x-DArK im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 12.06.08, 15:35
  3. Antworten: 3
    Letzter Beitrag: 24.11.07, 18:05
  4. In einer Klasse alle Objekte verwalten
    Von p-flash im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 05.06.05, 17:40
  5. Tabelle soll bei jeder Auflösung gleich gross sein
    Von Xcurse im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 31.07.01, 08:34