Parameterübergabe bei c++
-
DEvent schrieb:
so oder habe ich was falsch ?
#include <iostream> //ohne .h //#include <stl> Was ist denn das? #include <string> //den hier nicht vergessen using namespace std; struct Kfz { std::string farbe, marke; float leistung; } //Besser konstante Referenz nehmen, aber dein Ansatz war auch korrekt. void meine_funktion(const Kfz &kfz) { } //Wenn schon Parameter an main, dann richtig int main(int argc, char **argv) { Kfz kfz; cin >> kfz.farbe; cin >> kfz.marke; cin >> kfz.leistung; meine_funktion(kfz); }
-
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); }
-
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.htmlDas 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