[Anfänger] Variable in andere Funktion übertragen
-
Hallo, ich habe 2 Buttonclick-Funktionen. Bei der einen wird eine Funktion ausgeführt die einen Wert zurückgibt.
Den brauche ich jetzt aber in der 2. Funktion, wie bekomm ich die Variable denn da hin??Danke schon mal.
-
Über Parameter. Bist du sicher, dass du nicht erst mal C++ lernen solltest, bevor du was mit Buttons machst?
-
ein wneig kann ich ja shcon, lerne das lieber so...
Wie denn über di parameter? die Buttenclicks sind doch immer void oder?
void Dialog::OnButton_StartClick(wxCommandEvent& event)oder geht das auch so irgdnwie ??:
int iVar1; iVar1 = Dialog::OnButton_StartClick(wxCommandEvent& event) { return(3); }
-
goaran schrieb:
ein wneig kann ich ja shcon, lerne das lieber so...
Wie denn über di parameter? die Buttenclicks sind doch immer void oder?
void Dialog::OnButton_StartClick(wxCommandEvent& event)oder geht das auch so irgdnwie ??:
int iVar1; iVar1 = Dialog::OnButton_StartClick(wxCommandEvent& event) { return(3); }Du solltest dir unbedingt zuerst die Grundlagen aneignen.
Dein Lösungsansatz erscheint mir jedenfalls falsch. Du musst das vermutlich anders lösen und umdenken. Je nach Situation kann das unterschiedlich aussehen. Hängt davon ab, was du konkret vor hast...
-
Was gibt es denn da sinnvolles zu lesen?
So standard C++ Tutorials habe ich schon gelesen und c kann ich auch.. Aber irgdnwie ist das immer unterschiedlich je nachdem was man genau macht..
wie ich einen Parameter an eine funktion übergebe weiss ich ja, aber bei der buttonclick-funktion ist das irgdnwie anders?? die wird ja automatisch erstellt und ich kann da nicht einfach einen Paramter mehr anhängen.
-
Ich würde da zu einem Buch raten.
Irgendwo hat es eine Buchempfehlungsliste, weiss aber nicht, wie aktuell die ist.. (@pumuckl: Auftrag: Trag das doch bitte mal zusammen. :p)
Oft erwähnt:
- Thinking in C++ 1/2 (online zu finden)
- C++ PrimerEinfach mal danach suchen. Ich bin sicher, dass die sehr geeignet sind.
-
als ob du auch nur ansatzweise ein online tutorial durchgearbeitet hast, lügner. am besten du lässt das ganze komplett bleiben, denn dein verhalten zeugt nur davon, was für ein hirnloser iq-40 versager du bist. geh sterben!
-
kenner der idioten schrieb:
als ob du auch nur ansatzweise ein online tutorial durchgearbeitet hast, lügner. am besten du lässt das ganze komplett bleiben, denn dein verhalten zeugt nur davon, was für ein hirnloser iq-40 versager du bist. geh sterben!
Ich glaub wir haben hier ein Fall für den Psychater...
Echt derbe, was du da zusammen fasselst. Das kann man auch höfflicher ausdrücken...
-
Tut mir leid wenn ich hier ein wenig unwissend erscheine, aber ich habe auch schon einen c++ kurs gemacht und eine Studienarbeit in c programmiert..
Da das aber schon ein wenig her ist werde ich mich nochmal einlesen.
Das Problem bei so Tutorials ist aber immer, dass ich hinterher supetolle vererbete Klassen erstellen kann und pointer auf pointer und sosnt noch was, aber immer noch nicht weiss, wie ich eine Variable in eine buttenclick funktion bekomme (das stand da bis jetzt nirgends drin
Ich kann die Variable natürlich global machen und dann in alle .c files als extern einbinden, aber das ist ja nicht der Sinn der Sache.
Konkretes beispiel: ich habe diese funktion:int open_port(void) { int fd; /* File descriptor for the port */ fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY); if (fd == -1) { //error } else // open Port fcntl(fd, F_SETFL, 0); // Set Baudrate struct termios options; //Get the current options for the port... tcgetattr(fd, &options); cfsetispeed(&options, B9600); cfsetospeed(&options, B9600); // Enable the receiver and set local mode... options.c_cflag |= (CLOCAL | CREAD); // Set the new options for the port... tcsetattr(fd, TCSANOW, &options); return (fd); }die wird in der buttonklick aufgerufen:
void rs232_plotterDialog::OnButton1Click(wxCommandEvent& event) { int iFD = open_port(); wxString str; str<<iFD; StaticText1->SetLabel(str); Layout(); }jetzt brauche ich aber iFD noch in der anderen buttenklick zum lesen:
void rs232_plotterDialog::OnButton2Click(wxCommandEvent& event) { char n = fcntl(iFD, F_SETFL, FNDELAY); wxString str; str<<n; if (n < 0) StaticText1->SetLabel(str); }hier gelöst dadurch dass iFD global ist.. aber das geht doch auch anders ??
-
goaran schrieb:
Tut mir leid wenn ich hier ein wenig unwissend erscheine, aber ich habe auch schon einen c++ kurs gemacht und eine Studienarbeit in c programmiert..
Davon merkt man aber in diesen Thread wenig. Sind es zwei Funktionen eines Objektes, dann würde ich es beispielsweise als Membervariable halten. Globale Variablen würde ich nur verwenden wenn wirklich absolut keine andere Option existiert (und ich wüsste jetzt kein Programm wo ich jemals globale Variablen benötigt habe, maximal ein Singleton [was ich fast als globale Variable sehe]).
-
Spricht eigentlich irgendwas gegen Funktionsparameter? Gegebenenfalls über Referenzen oder Zeiger.