Zugriff auf geschachtelte Strukturen



  • Hallo zusammen,

    wer kann mir sagen wie ich auf die Elemente einer geschachtelten Struktur zugreifen kann

    Bis dann

    Incubus



  • So wie man es erwartest. Falls get-Methoden da sind

    foo.get_bar().get_quer();
    

    Fall alles public ist

    foo.bar.quer;
    

    Ohne dein Design zu kennen ist es natürlich jetzt schwer zu sagen. Vielleicht auch foo.get_bar().quer oder foo.bar.get_quer().



  • Hall Helium ,

    void main (void)

    {

    struct mitglieder
    {
    char name[20];
    char vorname[20];
    };
    struct Adresse
    {
    char strasse[40];
    unsigned int hausnr;
    char ort[30];
    unsigned int plz;
    char email[30];
    char besondere_merkm[40];
    }meyer[50];

    strcpy(&meyer[0].name[0],"xxx\n");
    strcpy(&meyer[0].vorname[0],"xxx\n");
    strcpy(&meyer[0].strasse[0],"xxx\n");
    strcpy(&meyer[0].hausnr,"xx");
    strcpy(&meyer[0].ort[0],"xxx\n");
    strcpy(&meyer[0].plz,"xxx\n");

    cout <<

    Wie greife ich jetzt für die Ausgabe auf name zu, da meyer ja unter Adresse deklariert wurde ??

    Bis dann
    Incubus



  • Tag! Du machst das so:

    int main () //im standard steht, man soll nur int main verwenden
    {
    
       struct Adresse
       {
          char name[20];    
          char vorname[20];
    //du hast für die zwei name und vorname ne extra struktur
    //gemacht, aber greifst unten auf eine Adresse struktur so zu, als würde sie 
    //die beiden enthalten. das geht aber nicht, also hab ich sie zur Adressestruct dazugetan.
          char strasse[40];
          unsigned int hausnr;
          char ort[30];
          unsigned int plz;
          char email[30];
          char besondere_merkm[40];
       }meyer[50];
    
    strcpy(&meyer[0].name[0],"xxx");  //ohne die \n
    strcpy(&meyer[0].vorname[0],"xxx");
    strcpy(&meyer[0].strasse[0],"xxx");
    //strcpy(&meyer[0].hausnr,"xx"); <- na hoi, einen string kannst du nicht in einen integer reinkopieren
    meyer[0].hausnr = 12; //geht nur so
    
    strcpy(&meyer[0].ort[0],"xxx");
    //strcpy(&meyer[0].plz,"xxx"); <- dito
    meyer[0].plz = 12345;
    
    cout << meyer[0].vorname << ' ' << meyer[0].name << " wohnt in der " << meyer[0].strasse << " Nr. " << meyer[0].hausnr << '\n';
    }
    

    wow!
    und so klappt das auch 😉 🙂



  • Danke schön

    Bis dann


Anmelden zum Antworten