vererbbare funktion mit nicht festgelegten parametertypen?
-
moin!
ich habe mir selber spinCtrls gebastelt, eine spinCtrlInt und eine spinCtrlFloat, beide erben von spinCtrlBase. für beide habe ich die funktion, dass bei verlieren des focus der wert in die registry gespeichert werden soll, also
void onKillFocus(wxFocusEvent &evt){ speicherInRegistry(leseWert()); }leseWert gibt natürlich in einem fall int und im anderen float zurück, und speicherInRegistry braucht in einem fall int und im anderen float. der oben stehende code wäre aber in beiden controls derselbe, könnte also eigentlich in spinCtrlBase.
also die frage: kann ich irgendwie onKillFocus in spinCtrlBase tun ohne die parameter von leseWert und speicherInRegistry festlegen zu müssen? also auch ohne leseWert doppelt für int und float definieren zu müssen?
danke!
-
speicherInRegistry legt den Wert aber nicht zufällig in der Windows Registry ab? Schreibt man da nicht DWORDs o.Ä. rein (also strings)?
Dann sollte doch speicherInRegistry sowieso den übergebenen Wert passend umwandeln vor dem RegSetValueEx-call. Dann mach aus der Funktion doch ein template.
-
danke für den tip, das sieht auch nicht schlecht aus: http://www.cplusplus.com/doc/tutorial/templates/
aber ich muss dann immer noch beim aufruf der funktion festlegen, mit welchem typ ich sie aufrufe, oder? also in meinem fall
speicherInRegistry<float>(leseWert());dann könnte ich sie wieder nicht in meine spinCtrlBase tun.
es kann aber auch sein, dass das eben nicht geht...EDIT: weiter unten auf der oben verlinkten seite steht, dass das auch ohne typangabe geht, also müsste das funktionieren, danke!