Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #203907
| From | Hans-Peter Diettrich <DrDiettrich1@aol.com> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: C++ method pointer? |
| Date | 2016-03-09 20:29 +0100 |
| Message-ID | <dkbbsfFrl7lU1@mid.individual.net> (permalink) |
| References | <dkb40lFph51U1@mid.individual.net> <dkb4itFpm0sU1@mid.individual.net> <dkb97bFqtk3U1@mid.individual.net> <dkbacvFr7hsU1@mid.individual.net> |
Christian Zietz schrieb: > Hans-Peter Diettrich schrieb: > >> Ich dachte auch schon an eine Klasse pro Protokoll, nur bläht das die >> Bibliothek auf. > > Im Quellcode vielleicht. Compiliert kommt ziemlich genau das heraus, was > Du mit Deinen händischen Methodenpointern auch machen willst. Jede > abgeleitete Klasse hat eine vtable mit einem Pointer auf ihre > decode-Methode. > >> Virtuell scheint mir auch überflüssig, denn wenn man ein Objekt der >> abgeleiteten Klasse erzeugen muß, dann kann man dessen Methoden auch >> direkt aufrufen. > > Eben nicht. Du könntest z.B. sowas haben: > > AbstractDecoder* decoder = AbstractDecoder::createDecoder(x); > decodeddata = decoder->decode(data); Mir ist schon eingefallen, warum virtuelle Methoden unerwünscht sind (siehe andere Mail). Eigentlich könnte man hier auf Objekte (immer Singletons) ganz verzichten, ich hatte auch schon an einen Aufruf wie if (decodeNEC(ErgebnisVar)) ... //liefert Wert in ErgebnisVar zurück gedacht. Aber leider liegen manche Parameter in der Instanz der Klasse, und es wäre auch aufwendiger, neue Decoder einzufügen. Deshalb möchte ich auch eine weitgehende Kompatibilität mit den vorhandenen Bibliotheken beibehalten. > Je nach Wert von 'x' wird 'decoder' nun zur Laufzeit eine Instanz von > SonyDecoder, NECDecoder usw. Trotzdem ruft decoder.decode() immer die > passende decode-Methode (und nicht etwa die in AbstractDecoder) auf. > Genau *dafür* brauchst Du virtuelle Methoden. => C++-Lehrbuch lesen. Wie gesagt, dynamische Erzeugung ist überflüssig und auf einem schmalbrüstigen µC auch unerwünscht. Meine C++ "Lehrbücher" (Borland C++) sind leider ziemlich alt, und beantworten meine Fragen auch nicht. Mir wäre eine andere Sprache auch lieber, OPL oder Ada, aber für die Verwendung in der Arduino IDE muß es ja unbedingt C oder C++ sein :-( > Wäre das hier eine C++-NG, würde ich Dir eben ein komplettes Beispiel > hintippen, aber in d.s.e ist das doch arg off-topic. Zugegeben, in dieser Gruppe findet sich bereits mehr off-topic als Antworten auf Fragen, aber kurze konkrete Antworten würden helfen, weiteren Traffic überflüssig zu machen :-] DoDi
Back to de.sci.electronics | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 18:14 +0100
Re: C++ method pointer? Christian Zietz <newsgroup.1001@chz.xyz> - 2016-03-09 18:24 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 19:43 +0100
Re: C++ method pointer? Christian Zietz <newsgroup.1001@chz.xyz> - 2016-03-09 20:03 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 20:29 +0100
Re: C++ method pointer? Christian Zietz <newsgroup.1001@chz.xyz> - 2016-03-09 20:47 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 19:57 +0100
Re: C++ method pointer? Thorsten Böttcher <thorsten_nospam@gmx.net> - 2016-03-09 19:49 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 20:11 +0100
Re: C++ method pointer? Thorsten Böttcher <thorsten_nospam@gmx.net> - 2016-03-09 20:35 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 22:31 +0100
Re: C++ method pointer? Thorsten Böttcher <thorsten_nospam@gmx.net> - 2016-03-10 06:45 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-10 16:59 +0100
Re: C++ method pointer? Marc Santhoff <m.santhoff@t-online.de> - 2016-03-09 20:47 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-09 22:33 +0100
Re: C++ method pointer? Christian Zietz <newsgroup.1001@chz.xyz> - 2016-03-09 23:11 +0100
Re: C++ method pointer? Marc Santhoff <m.santhoff@t-online.de> - 2016-03-10 01:29 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-11 13:24 +0100
Re: C++ method pointer? Edzard Egberts <ed_09@tantec.de> - 2016-03-10 08:51 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-10 16:33 +0100
Re: C++ method pointer? Heinz Saathoff <newshsaat@arcor.de> - 2016-03-10 09:14 +0100
Re: C++ method pointer? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2016-03-10 16:42 +0100
Re: C++ method pointer? Edzard Egberts <ed_09@tantec.de> - 2016-03-10 19:12 +0100
Re: C++ method pointer? Edzard Egberts <ed_09@tantec.de> - 2016-03-11 08:04 +0100
Re: C++ method pointer? Heinz Saathoff <newshsaat@arcor.de> - 2016-03-11 09:14 +0100
csiph-web