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


Groups > de.sci.electronics > #203900

Re: C++ method pointer?

From Christian Zietz <newsgroup.1001@chz.xyz>
Newsgroups de.sci.electronics
Subject Re: C++ method pointer?
Date 2016-03-09 20:03 +0100
Message-ID <dkbacvFr7hsU1@mid.individual.net> (permalink)
References <dkb40lFph51U1@mid.individual.net> <dkb4itFpm0sU1@mid.individual.net> <dkb97bFqtk3U1@mid.individual.net>

Show all headers | View raw


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);

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.

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.

Christian
-- 
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA

Back to de.sci.electronics | Previous | NextPrevious in thread | Next 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