Parameterübergabe bei c++



  • hört sich vielleicht komisch an aber ich verstehe es nicht ganz könntest du es vielleicht erläutern ????



  • passt auf ich hab es so gemacht(es funktioniert doch hier ist es ohne parameterübergabe):

    #include <conio.h>
    #include <iostream>

    using namespace std;

    struct kfz
    {
    string marke,farbe;
    int anzahl,baujahr,nr;
    float leistung_ps;

    void eingeben()
    {
    cout<<"####Eingabe####\n";cout<<"\n";
    cout<<"Marke: ";cin>>marke;
    cout<<"Farbe: ";cin>>farbe;
    cout<<"Leistung in PS: ";cin>>leistung_ps;
    cout<<"Anzahl der Tueren: ";cin>>anzahl;
    cout<<"Baujahr: ";cin>>baujahr;
    cout<<"InventarNr: ";cin>>nr;
    };
    void ausgeben()
    {
    cout<<"####AUSGABE####\n";cout<<"\n";
    cout<<"Marke: "<<marke<<"\n";
    cout<<"Farbe: "<<farbe<<"\n";
    cout<<"Leistung in PS: "<<leistung_ps<<"\n";
    cout<<"Anzahl der Tueren: "<<anzahl<<"\n";
    cout<<"Baujahr: "<<baujahr<<"\n";
    cout<<"InventarNr: "<<nr<<"\n";
    cout<<"Leistung in kW: "<<leistung_ps*0.735<<"\n";
    };

    };

    int main()
    {
    kfz auto1;
    auto1.eingeben();
    auto1.ausgeben();
    getch();
    }



  • hallo??
    kann mir jemand sagen wie ich das jetzt verändern muss um es mit parameterübergabe zu machen?



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hehe jetzt hast du was nicht korrekt:

    #include <iostream.h> // hab ich aus Volkards C++-Kurs http://www.volkard.de/vcppkold/hello_world.html
    #include <string>
    
    using namespace std;  // wozu namespace wenn du std::string schreibst ?
    
    struct Kfz 
    { 
        std::string farbe, marke;  // siehe oben
        float leistung; 
    } 
    
    // Ich wollt ein Noob nicht mit konstanten Referenzen verwirren
    void meine_funktion(const Kfz &kfz) { } 
    
    // Bin Java gewöhnt :)
    int main(int argc, char **argv) 
    { 
        Kfz kfz; 
        cin >> kfz.farbe; 
        cin >> kfz.marke; 
        cin >> kfz.leistung; 
    
        meine_funktion(kfz); 
    }
    


  • @Ahramys

    ja ist doch korrekt, aber ich dacht du wollst nicht OOP 😕

    hallo??
    kann mir jemand sagen wie ich das jetzt verändern muss um es mit parameterübergabe zu machen?

    Indem du die main-Funktion mit Parameter machst ?

    //Wenn schon Parameter an main, dann richtig
    int main(int argc, char **argv)
    

    argc ist die Anzahl der Parameter, argv sind die Parameter.

    if ( argc > 0 )
    {
       string param1 = new string(argv[0]);
    }
    

    ich hoff die Parameter sind null-terminiert.





  • Ich schreib jetzt mal weil ich glaube das du das meinst.

    #include <conio.h> 
    #include <iostream> 
    
    using namespace std; 
    
    struct kfz 
    { 
    string marke,farbe; 
    int anzahl,baujahr,nr; 
    float leistung_ps; 
    
    void eingeben(kfz Kfz) 
    { 
    cout<<"####Eingabe####\n";cout<<"\n"; 
    cout<<"Marke: ";cin>>Kfz.marke; 
    cout<<"Farbe: ";cin>>Kfz.farbe; 
    cout<<"Leistung in PS: ";cin>>Kfz.leistung_ps; 
    cout<<"Anzahl der Tueren: ";cin>>Kfz.anzahl; 
    cout<<"Baujahr: ";cin>>Kfz.baujahr; 
    cout<<"InventarNr: ";cin>>Kfz.nr; 
    }; 
    void ausgeben(kfz Kfz)
    { 
    cout
    cout<<"Marke: "<<Kfz.marke<<"\n"; 
    cout<<"Farbe: "<<Kfz.farbe<<"\n"; 
    cout<<"Leistung in PS: "<<Kfz.leistung_ps<<"\n"; 
    cout<<"Anzahl der Tueren: "<<Kfz.anzahl<<"\n"; 
    cout<<"Baujahr: "<<Kfz.baujahr<<"\n"; 
    cout<<"InventarNr: "<<Kfz.nr<<"\n"; 
    cout<<"Leistung in kW: "<<Kfz.leistung_ps*0.735<<"\n"; 
    }; 
    
    }; 
    
    int main() 
    { 
    kfz auto1; 
    eingeben(auto1); 
    ausgeben(auto1); 
    getch(); 
    }
    

    Hoffe dich richtig verstanden zu haben

    LG



  • Nein, das geht so nicht. Besser:

    struct kfz
    {
        string marke,farbe;
        int anzahl,baujahr,nr;
        float leistung_ps;
    };
    
    void eingeben(kfz& Kfz)
    {
    cout<<"####Eingabe####\n";cout<<"\n";
    cout<<"Marke: ";cin>>Kfz.marke;
    cout<<"Farbe: ";cin>>Kfz.farbe;
    cout<<"Leistung in PS: ";cin>>Kfz.leistung_ps;
    cout<<"Anzahl der Tueren: ";cin>>Kfz.anzahl;
    cout<<"Baujahr: ";cin>>Kfz.baujahr;
    cout<<"InventarNr: ";cin>>Kfz.nr;
    }
    
    void ausgeben(const kfz& Kfz)
    {
    cout<<"Marke: "<<Kfz.marke<<"\n";
    cout<<"Farbe: "<<Kfz.farbe<<"\n";
    cout<<"Leistung in PS: "<<Kfz.leistung_ps<<"\n";
    cout<<"Anzahl der Tueren: "<<Kfz.anzahl<<"\n";
    cout<<"Baujahr: "<<Kfz.baujahr<<"\n";
    cout<<"InventarNr: "<<Kfz.nr<<"\n";
    cout<<"Leistung in kW: "<<Kfz.leistung_ps*0.735<<"\n";
    }
    

    Schon erstaunlich wieviele Fehler man in einem so kurzen Stück Code machen kann. Ich hoffe mal, daß ich alle gefunden habe.



  • sorry ist schon spät 😃



  • @Sascha_Thiel && Z2: WTF ? Ist das nicht der gleiche Code wie von Ahramys ?
    Bis auf das von Z2 die 2 Funktionen jetzt ausserhalb des struct sind.



  • Er wollte doch die Parameter der Funktion Übergeben, das hat er in seinem Code ja nicht. Oder hab ich da was falsch verstanden?



  • oder gar so 😉

    struct KFZ
    {
     string marke,farbe;
     float leistung_ps;
    }kfz;
    
    void eingabe(const string& kfz_marke, const string& kfz_farbe, const float& kfz_leistung)
    {
     kfz.marke = kfz_marke;
     kfz.farbe = kfz_farbe;
     kfz.leistung_ps = kfz_leistung;
    }
    
    void ausgabe()
    {
     cout<<"Hersteller: "<<kfz.marke<<endl;
     cout<<"Farbe:      "<<kfz.farbe<<endl;
     cout<<"Leistung:   "<<kfz.leistung_ps<<endl;
    }
    
    int main(int argc, char* argv[])
    {
     eingabe("VW","Silber",150);
     ausgabe();
     getch();
            return 0;
    }
    


  • DEvent schrieb:

    Hehe jetzt hast du was nicht korrekt:

    #include <iostream.h> // hab ich aus Volkards C++-Kurs http://www.volkard.de/vcppkold/hello_world.html
    

    Das ist *definitiv* veraltet, letzte Änderung war 08/25/00. iostream.h geht einfach nicht mehr.

    #include <string>

    using namespace std; // wozu namespace wenn du std::string schreibst ?

    Macht der Gewohnheit, normalerweise hab ich kein using drin, in dem Fall drinlassen. Sonst müssen wir std::cin schreiben 😉

    // Bin Java gewöhnt 🙂

    int main(int argc, char **argv)
    

    Da heißt's aber

    public class Foo
      public static void main(String []args) {
    
      }
    }
    

    :p 😉

    passt schon...

    MfG

    GPC


Anmelden zum Antworten