Array von Funktionen
-
Hallo
Weiss keiner, was hier los sein könnte?
chrische
-
Vielleicht ist Feld kein gültiger Index für aCheckFunctions.
BTW: Das mit den static-Funktionen solltest du wieder rückgängig machen und stattdessen einen Funktionspointer auf ein Klassenelement benutzen.
-
Hallo
"Feld" ist ein gültiger Index, da ich 0 übergebe und das Array 13 Plätze hat (von 0-12) Warum ist das mit static ungünstig? Ich habe wie gesagt noch gar nicht richtig verstanden, was static eigentlich bringt.
chrische
-
Eine statische Methode hat keinen this-Pointer, d.h. alle Instanzen der Klassen teilen sich die Methode.
-
Hallo
In Ordnung und warum ist das in meinem Fall schlecht. Hilft mir das bei der Fehlersuche.
chrische
-
static-Funktionen kann man immer ohne eine einzige Instanz einer Klasse ausführen. Das macht aber bei deinen Funktionen keinen Sinn, weshalb man sie nicht statisch macht.
-
Ich versteh noch nicht ganz zu was genau du es brauchst aber es könnte in diese Richtung gehen:
class foo { private: void bar_0() { cout << "bar_0();" << endl; } void bar_1() { cout << "bar_1();" << endl; } void bar_2() { cout << "bar_2();" << endl; } static void (foo::*pfunc[3])(); public: void call(int num) { (this->*pfunc[num])(); } foo() { } }; void (foo::*(foo::pfunc[3]))() = { &foo::bar_0, &foo::bar_1, &foo::bar_2 };Hoffe das stimmt so habs net getestet. Man sollte villeicht noch ein typedef verwenden.
-
Hallo
Erstmal danke für eure Hilfe. Da alles bei mir nicht geklappt hat, habe ich mich jetzt doch für die switch-Variante entschieden.
chrische
-
Hallo,
ich möchte die Antwort eines Touchscreens (über den I²C-Bus) mit einem Atmel
AtMega88-Controller auswerten. Ich verwende zum Programmieren den kostenlosen
AVR-GCC-Compiler.Der Touchscreen liefert je nach betätigtem Button einen 8-Bit Returncode zum
Prozessor (den Returncode vergebe ich im intelligenten Display selber). Die Auswertung habe ich mit IF-Anweisungen angefangen, da ich aber ca. 100 Returncodes auswerten muß, wird das verdammt umständlich.Wie schreibe ich ein Funktionsarray in C? So ganz klar ist mir das nicht. Habe auch bisher keine große Erfahrung mit solch "komplexen" Sachen.
Ich habe folgendes:
* Rückgabewert des Displays (z.B. 1...127)
* diverse Befehle, die bei den entsprechenden Rückgabewerten ausgeführt werden sollen.Vielen Dank im Voraus.
Martin