Feld aus Klasse an Hauptprogramm übergeben
-
Konrad Rudolph schrieb:
Noch etwas: man programmiert allgemein in Englisch, soll heißen, alle Bezeichner sollten englisch sein.
wenn du schon auf solche spitzfindigkeiten eingehst... man sollte auch anständige bezeichner für seine methoden wählen und keine kryptischen. getFlugzeugNummer() ist zwar länger, aber auch eindeutiger als getFlNr().
-
thordk schrieb:
wenn du schon auf solche spitzfindigkeiten eingehst... man sollte auch anständige bezeichner für seine methoden wählen und keine kryptischen. getFlugzeugNummer() ist zwar länger, aber auch eindeutiger als getFlNr().
ACK. Ich habe halt nur den Originalcode abgewandelt.
-
Also meine Klasse sieht nun so aus:
class Flugzeug { private: int flnr, fltyp, flarrival, anfrage, flclose, flabsturz; public: void daten(); int GetFlNr() const { return flnr; } int GetFlTyp() const {return fltyp; } int GetFlArrival() const { return flarrival; } int GetFlAbsturz() const { return flabsturz; } int GetFlClose() const { return flclose; } int GetFlAnfrage() const {return anfrage; } }; void Flugzeug::daten(void) { srand( time(NULL) ); flnr=1; while (flnr <=999) flnr = rand()%10000; fltyp=0; while (fltyp <=0) fltyp = rand()%4*10; flarrival=0; while (flarrival <=0) flarrival = rand()%10*10; anfrage = rand()%2; flclose=0; }Wie kann ich nun die Daten im Hauptprogramm aufrufen??? Ich bin wahrscheinlich zu blöd dafür

-
über die methoden
Flugzeug f; cout << "FlNr: " << f.GetFlNr() << endl;
-
mit dem punkt-operator die nötige funktion (methode) aus der klasse aufrufen
int main() { Flugzeug flugzeug1; cout << "Nummer: " << flugzeug1.GetFlNr(); return 0; }
-
Prima. Jetzt geht es. Besten Dank!!!!

-
Mh.... allerdings übergibt er mir irgendwelche Werte. Sind nicht die, die ich in der Klasse generiert habe ?!
-
Playkid schrieb:
Mh.... allerdings übergibt er mir irgendwelche Werte. Sind nicht die, die ich in der Klasse generiert habe ?!
Doch, das sollten genau diese Werte sein. Bist Du sicher, dass Du die Methode 'daten' vorher aufgerufen hast?
Außerdem sind das halt nunmal Zufalls-Werte.
-
Also in meinem Hauptprogramm sieht es nun so aus:
#include <iostream> #include "flugzeug2.h" using namespace std; int main() { Flugzeug f; cout << "Flugnummer: " << f.GetFlNr() << endl; cout << "Flugzeugtyp: " << f.GetFlTyp() << endl; cout << "Ankunft: " << f.GetFlArrival() << endl; cout << "Absturz: " << f.GetFlAbsturz() << endl; return (0); }wo soll ich da die methode 'daten' noch aufrufen?
-
dort,wo du sie auch in deinem ersten code aufrufen wolltest
am anfang der programs bzw. bevor du irgendwelche werte rausliest
-
Ja jetzt habe ich es.... endlich. Sorry dass ich mich so dumm angestellt hab

-
srand(time(0)); ruft man nur einmal (am besten zu beginn des programms) auf.
-
Wenn ich die Klasse in meinem Programm mehrmals aufrufen möchte, z.B. in einer Schleife, werden mir immer wieder die gleichen Zufallsparameter übergeben. Wenn ich das Programm neu startet, sind es immer andere Werte.
Wie bekomme ich es hin, dass bei mehrmaligen Aufruf der Klasse auch unterschiedliche Zufallswerte übergeben werden?
-
In den ANSI-C-FAQ: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39331-and-highlight-is-zufall.html
oder per Forumssuche:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-174310-and-highlight-is-zufall.htmlGruß,
Simon2.
-
srand( time(NULL) ); aus der klasse raus und in die main packen.
-
Besten Dank.
-
offenbar habe ich vergessen, meine glaskugel zu erwähnen, sonst wäre ich vielleicht eher ernst genommen worden...