Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » struct als parameter übergeben?!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.08.2003, 15:11 Uhr
~phil
Gast


habe folgenden Code (ihhhhh....):


C++:
int main()
{
             int anzahl;

    cout<<"Wieviel Adressen wollen Sie eingeben :";
    cin>>anzahl;
    adresse* Adressen = new adresse[anzahl];
    person* Personen = new person[anzahl];


            //DER FOLGENDE TEIL SOLL NUN IN EINE ANDERE FUNKTION

             int x;
    for(int i=0; i<anzahl; i++)
    {
        cout<<endl<<endl<<"Adresse "<<i+1<<endl<<endl;
        cout<<"Anrede\n1) Herr\n2) Frau";
        cin>>x;
        switch(x)
        {
            case 1: Adressen[i].Anrede = "Herr";
                break;
            case 2: Adressen[i].Anrede = "Frau";
                break;
        }
        cout<<"Vorname :";
        cin>>Adressen[i].Vorname;
        
        cout<<"Nachname :";
        cin>>Adressen[i].Nachname;

        cout<<"Strasse :";
        cin>>Adressen[i].Strasse;
                          //USW......
}


nach der Eingabe, wird alles nacheinander ausgegeben und der Speicher wieder freigegeben.
Aber:
Wie kann ich die beiden struct´s an eine andere Funktion übergeben....?


Phil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2003, 15:17 Uhr
virtual
Sexiest Bit alive
(Operator)


zB:

C++:
void fkt(adresse* Addressen, person* Personen, int anzahl)
{
  for(int i=0; i<anzahl; i++)
    {
        cout<<endl<<endl<<"Adresse "<<i+1<<endl<<endl;
        cout<<"Anrede\n1) Herr\n2) Frau";
        cin>>x;
        switch(x)
        {
            case 1: Adressen[ i ].Anrede = "Herr";
                break;
            case 2: Adressen[ i ].Anrede = "Frau";
                break;
        }
        cout<<"Vorname :";
        cin>>Adressen[ i ].Vorname;
        
        cout<<"Nachname :";
        cin>>Adressen[ i ].Nachname;

        cout<<"Strasse :";
        cin>>Adressen[ i ].Strasse;
                          //USW......
}

int main()
{
             int anzahl;

    cout<<"Wieviel Adressen wollen Sie eingeben :";
    cin>>anzahl;
    adresse* Adressen = new adresse[anzahl];
    person* Personen = new person[anzahl];

    fkt(Addressen, Personen, anzahl);
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 19.08.2003 um 15:17 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2003, 15:21 Uhr
Pablo
Supertux
(Operator)


Willst du vielleicht folgendes machen?


C++:
void function(adress& Adressen, person& Personen, int anzahl)
{
   // hier die funktion
}



Und die Funktion die function(adress&,person&int) aufruft:

C++:
// hier der Teil mit adress* Adressen = new ...
function(Adressen,Personen, anzahl);




Ist das was du wolltest?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2003, 15:23 Uhr
Pablo
Supertux
(Operator)


@virual:

wenn du adress* Adressen und person* Personen deklarierst, dann kannst du nicht
Adressen[ i ]. benutzen, sondern Adressen[ i ]->, oder
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.08.2003 um 15:24 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.08.2003, 15:29 Uhr
virtual
Sexiest Bit alive
(Operator)


@pablo
Überdenke die beiden letzten Posts hinsichtlich des Unterschieds zwischen Referenzen und Zeigern!
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.08.2003, 15:33 Uhr
Pablo
Supertux
(Operator)


tja, aber meine Frage war: wenn du Adressen als Pointer deklarierst, muss du nicht auch ->, um auf die Members zuzugreifen? Oder was mein Code völlig falsch?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.08.2003, 15:41 Uhr
~wissender
Gast


operator[] gibt eine Referenz zurück, also ist hier -> nicht anzuwenden, sonder wie virtuals Beispiel mit dem operator..
(Sorry, schlechter Satzbau .-))
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.08.2003, 15:50 Uhr
~phil
Gast


DANKE @virtual & pablo

manchmal sieht man den wald vor lauter bäumen nicht....

phil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.08.2003, 19:37 Uhr
Pablo
Supertux
(Operator)


Ach logisch!
Wenn ich Adressen nicht als Array benutze, dann brauche ich ->.

Mann, ist das peinlich!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.08.2003 um 19:37 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: