Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #203890

C++ method pointer?

Path csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Hans-Peter Diettrich <DrDiettrich1@aol.com>
Newsgroups de.sci.electronics
Subject C++ method pointer?
Date Wed, 09 Mar 2016 18:14:54 +0100
Lines 53
Message-ID <dkb40lFph51U1@mid.individual.net> (permalink)
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding 8bit
X-Trace individual.net ATo9I/KGnwXf0EFMIl9pwQNhaX2L+wFNh5ItY9EaTyqUNg9euV
Cancel-Lock sha1:b3el9KSiswYWGoSZ4aOecagk3O8=
User-Agent Thunderbird 2.0.0.21 (Windows/20090302)
Xref csiph.com de.sci.electronics:203890

Show key headers only | View raw


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 | NextNext in thread | Find similar | Unroll thread


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