Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #203890
| From | Hans-Peter Diettrich <DrDiettrich1@aol.com> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | C++ method pointer? |
| Date | 2016-03-09 18:14 +0100 |
| Message-ID | <dkb40lFph51U1@mid.individual.net> (permalink) |
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 :-(
Ewas konkreter: Es geht um die Klasse IRrecv aus der Arduino IRremote
Bibliothek. Sie enthält Dekodierer für verschiedene Protokolle, z.B.
decodeNEC(), decodeSony(), die ich schon von allem überflüssigen Ballast
befreit habe. Nun möchte ich einen Pointer auf eine dieser Methoden
innerhalb seiner Klasse erzeugen, vorbesetzen und dann aufrufen. Sowas wie:
In der Bibliothek:
class IRrecv {
public:
bool decodeNEC();
bool decodeSony();
...
bool() *Decoder; //??? soll auf eine der o.g. Methoden zeigen
void begin(???); //soll Decoder mit dem übergebenen Parameter
initialisieren
char read(); //soll intern Decoder aufrufen
};
IRecv::read() {
if (*Decoder()) //??? soll die Methode aufrufen
return results.asc;
else
return '?';
}
Im Programm:
IRrecv irrecv(IR_PIN); //erzeugt Instanz (Singleton)
void setup() {
irrecv.begin(&decodeNEC); //??? soll den Pointer initialisieren
}
void loop() {
if (irrecv.available()) {
char data = irrecv.read();
...
}
}
Da die Methode nur innerhalb der (selben) Instanz aufgerufen werden
soll, könnte ein einfacher Pointer ausreichen?
Wie müssen die oben markierten Stellen genau aussehen?
TIA
DoDi
Back to de.sci.electronics | Previous | Next — 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