Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Christian Zietz Newsgroups: de.sci.electronics Subject: Re: C++ method pointer? Date: Wed, 9 Mar 2016 20:47:21 +0100 Lines: 26 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit X-Trace: individual.net RgrJxxwD54kwn84uuQVGrQcz5WqRUqoc6uKhc7r3cUJvILNg== Cancel-Lock: sha1:OyMQjwaqR3q2bPsdGLkvz0+MoTQ= User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 In-Reply-To: Xref: csiph.com de.sci.electronics:203911 Hans-Peter Diettrich schrieb: > Mir ist schon eingefallen, warum virtuelle Methoden unerwünscht sind > (siehe andere Mail). Den Grund habe ich allerdings nicht verstanden. Auf alle Decoder zugreifen kannst Du mit virtuellen Methoden doch ebenso. Aber egal, dann müh Dich eben weiter mit Pointern auf Methoden ab... > Wie gesagt, dynamische Erzeugung ist überflüssig und auf einem > schmalbrüstigen µC auch unerwünscht. Dann halt als Makro, wobei eine Basisklasse und virtuelle Methoden weiterhin erforderlich sind. Dann kann der Linker wie gewünscht nicht verwendete Decoder aussortieren. #define GET_DECODER(x) (new x##Decoder) AbstractDecoder* decoder = GET_DECODER(Sony); decoder->decode(data); Christian -- Christian Zietz - CHZ-Soft - czietz (at) gmx.net WWW: http://www.chzsoft.de/ PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA