Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Hans-Peter Diettrich Newsgroups: de.sci.electronics Subject: Re: C++ method pointer? Date: Wed, 09 Mar 2016 19:43:49 +0100 Lines: 33 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net cCdpwQwKpWGcqTEFwqKDVw9pheR9CXGvlotGH2yel13W/dYrcD Cancel-Lock: sha1:LJ06q9jS3XKSZ4cBdBdlZzo0+e0= User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: Xref: csiph.com de.sci.electronics:203897 Christian Zietz schrieb: > Hans-Peter Diettrich schrieb: > >> Problem: eine Klasse implementiert mehrere (gleichartige) Methoden, von >> denen eine bestimmte zur Laufzeit aufgerufen werden soll. Leider sind >> meine C++ Kenntnisse sehr angestaubt, ich komme nicht drauf wie sich das >> mit einem Methoden-Pointer erledigen läßt :-( > > 1. Eine C++-Newsgroup existiert. Dort wäre Deine Frage sogar on-topic. Sowas dachte ich mir schon ;-) Über die Syntax hinaus geht es mir auch um den Speicherbedarf, und die beste Variante für den Einsatz auf einem µC. Deshalb auch der längliche Verweis auf die Arduino Bibliothek. > 2. Der lehrbuchhafte Weg in C++ wäre, die decode-Methode als virtuelle > Methode in einer Basisklasse zu deklarieren und die tatsächlichen > Dekoder dann in davon erbenden Klassen zu implementieren. Ich dachte auch schon an eine Klasse pro Protokoll, nur bläht das die Bibliothek auf. Das riecht dann irgendwie nach einem Template? Virtuell scheint mir auch überflüssig, denn wenn man ein Objekt der abgeleiteten Klasse erzeugen muß, dann kann man dessen Methoden auch direkt aufrufen. > 3. Da war ich schon, hilft mir aber nicht bei allen Details :-( Danke für die Hilfe :-) DoDi