Wer kann mir das mit den Strukturen erklären? (Anfängerfrage)



  • Hallo zusammen!

    Ich beschäftige mich noch nicht lang mit C++ und bin jetzt bei den "Strukturen" angelangt, die mich etwas überfordern.
    mir ist klar, wie eine struktur definiert wird und was sie bewirkt, aber angenommen ich möchte ein programm zum verwalten von adressen in einer firma schreiben (rein theoretisch...)
    angenommen ich entwerfe folgendes schema:

    struct angaben
    {
     string name;
     string strasse;
     string wohnort;
    };
    
    int main()
    {
      angaben arbeiter1;
      arbeiter1.name    = "Jens Mueller";
      arbeiter1.strasse = "Holzweg 2";
      arbeiter1.wohnort = "Hamburg";
    
     cout << arbeiter1.name << endl;
     cout << arbeiter1.strasse << endl;
     cout << arbeiter1.wohnort << endl;
    
     return 0; 
    }
    

    müsste soweit ja funktionieren. Aber: angenommen, ich möchte nicht einen arbeiter sondern mehrere verwalten, dann könnte ich doch für jeden eine strukturklasse anlegen oder? (wo sein name, seine strasse und sein wohnort drin gespeichert sind) Sodass in main() letztendlich die "informationen" ausgegeben werden. Leider krieg ich das von der synatx nicht auf die reihe, könnte mir dajemand helfen? Danke! 🙂



  • Du hast es doch schon fast...

    Wenn du mehrere haben willst, dann nimm zum Beispiel ein Array (weißt du, was ein Array ist?)

    int main()
      Struktur Objekte[10]; 
    
      for(int i = 0; i< 10; i++);
      {
         Objekte.Elemetn = 2;
         ...
      }
    }
    

    so in etwa



  • Ich würd sagen, dass das obige bis zu diesem Kenntnisstand die einzige Lösung wär. Wenn du weiter bis Templates gekommen bist würde ich dir die std::list empfehlen, die ist dynamisch(sprich sie hat so viele Elemente wie man braucht und man kann sie erweitern)

    mfg
    Glamdring



  • Wenn du mehrere haben willst, dann nimm zum Beispiel ein Array (weißt du, was ein Array ist?)

    ja, also von der funktion her kenn ich ein array. aber: wie bzw. wo müsste ich das denn in meinem fall definieren? In "struct angaben"? oder in einem neuen "struct"? 🙂



  • In main 😉

    mfg
    Glamdring



  • Du willst ja ein Array aus den Objekte haben, und nicht ein Array in einem Objekt/Struktur, also musst du das in main() machen.



  • hm, hab das mit dem Array mal versucht, scheint aber irgendwie falsch zu sein:

    struct angaben
    {
    	string name;
    	string alter;
    };
    
    int main()
    {
    	angaben arbeiter;
    	struct arbeiter[3];
    
        int i = 0;
    
    	for(i=0; i<3; i++)
    	{
    		arbeiter.name = "Jens";
    		arbeiter.name = "Kai";
    		arbeiter.name = "Peter";
    	}
    
    	cout << arbeiter.name[0] << endl;
    	cout << arbeiter.name[1] << endl;
    	cout << arbeiter.name[2] << endl;
    
         return 0;
    }
    

    ich denk mal es liegt an der syntax im oberen teil der main-funktion... 😕

    PS: noch eine andere frage, die schleife ist doch eigentlich nicht unbedingt notwendig oder? Oder doch...? 🙄



  • angaben arbeiter; 
    struct arbeiter[3];
    

    das ist natuerlich Kaese.
    Wie deklariert man ein Array?

    angaben arbeiter[3];
    

    Die Schleife ist nicht noetig und sie macht Bloedsinn.

    was du willst ist eher

    arbeiter[0].name = "Jens"; 
    arbeiter[1].name = "Kai"; 
    arbeiter[2].name = "Peter";
    

    und die Ausgabe sieht dann so aus:

    for(int i=0;i<3;++i)
      cout << arbeiter[i].name << '\n';
    


  • jau, danke für eure die hilfe! 🙂 👍


Anmelden zum Antworten