Array von Methoden
-
Jetzt beherrscht mein gcc für ATMEGA keine templates
error: expected constructor, destructor, or type conversion before '<' token
-
Wenn du exakt das genutzt hast was Manni geschrieben hast, dann bsit du auf dem Holzweg, denn der hat sich vertippt, es heisst
std::vector<Base*>
-
Richtig, aber soweit hatte ich mir das schon zusammengereimt.
Leider unterstützt der ATMEGA-gcc diese C++ Version nicht.
-
std::vector ist wohl auch nicht das ganz richtige für den Atmega. Es geht aber auch ein normales Array, aber dann ist eben die Größe fest.
Base* x[2];
-
Auf so'n simplen System wuerde ich eher zu Funktionpointern tendieren, einfach wieder in einem Array fester Groesse hinterlegt. Wenns nicht performancekritisch ist, gehts mit virtuellen Funktionen aber auch.
-
Ich hab's nun anders gelöst.
Ich lege Pointer auf die Methoden in einem Array ab.
Damit kommt der Kleine auch wunderbar zurecht.
-
Do it like '85. Weitere Infos gibts uebrigens unter folgendem Begriff "Sprungtabelle":
https://de.wikipedia.org/wiki/Sprungtabelle
-
Eine Sprungtabelle mit switch/case aufbauen?
Da müßte ich jedesmal die Bibliotheksfunktionen ändern, wenn ich ein anderes System zusammenstellen will.
So hab ich nur ein Array, dass ich der Biblithek übergebe und gut.
Ich hab bisher noch nicht die Notwendigkeit, das letzte Quantchen Speed herauszuholen. Ist noch relativ viel Luft.
-
Wir waere es eine Sprungtabelle ohne switch und case aufzubauen? Das Array _ist_ eine Sprungtabelle. Ich dachte dich interessieren vielleicht die Hintergruende.
-
Ich kenn das ja noch aus den Zeiten wo ich noch 8080 in Assembler programmiert hab.