Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #203908
| From | Thorsten Böttcher <thorsten_nospam@gmx.net> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: C++ method pointer? |
| Date | 2016-03-09 20:35 +0100 |
| Organization | albasani.net |
| Message-ID | <nbpttb$d2q$1@news.albasani.net> (permalink) |
| References | <dkb40lFph51U1@mid.individual.net> <nbpr73$77j$1@news.albasani.net> <dkbar9FrbmbU1@mid.individual.net> |
Am 09.03.2016 um 20:11 schrieb Hans-Peter Diettrich:
> Thorsten Böttcher schrieb:
>> Am 09.03.2016 um 18:14 schrieb Hans-Peter Diettrich:
>>> 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 :-(
>>
>> Kann man machen, ist aber unschön. Stichwort Funktoren.
>> Um Memberfunktionen aufzurufen brauchst Du den Zeiger auf das Objekt.
>
> Deshalb wollte ich ja die Methode innerhalb des Objekts aufrufen, dann
> ist die Instanz ja bereits bekannt (this).
Das stimmt, ändert aber nichts daran dass man ihn braucht.
>
>> Wieviel verschiedene Dekoder gibt es denn?
>
> Etwa 10, Tendenz steigend. Zudem hätte ich gerne noch eine Möglichkeit,
Dann ein Interface, bzw. abstrakte Klasse, da es in C++ keine Interfaces
gibt, und dann das passende Objekt erzeugen. Hat Christian bereits
geschrieben.
Das könnte im prinzip Dein Singleton machen.
>> Entweder Du baust Dir ein Interface, und erzeugst Dir passende Objekte
>> je nachdem was Du brauchst,
>
> Das riecht für mich nach einem Template, und da kenne ich mich auch
> nicht (mehr) aus :-(
Nein, dazu braucht man keine Templates.
>> oder Du erledigst das einfach mit ner if-Abfrage, oder mit einem
>> switch case Block.
>>
>> begin(IRecv::DecodeNEC);
>>
>> IRecv::read()
>> {
>> if (decoder==DecoderNEC)
>> return decodeNEC;
>> else
>> return decodeSony();
>> }
>
> Das hat den Nachteil, daß alle angegebenen Decoder ins Programm
> eingebunden werden, und das möchte ich vermeiden. Der Linker ist ja
> schon so clever, daß er unbenutze Methoden wegläßt, man muß nur noch
> vermeiden, daß diese irgendwo in der Bibliothek referenziert werden.
Wenn die Dekoder zur Laufzeit ausgewählt werden sollen, dann müssen Sie
zwangsläufig im Programm sein.
Oder willst Du vor dem Kompilieren entscheiden welcher Dekoder benutzt wird?
MfG
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