Article View: de.comp.lang.c++
Article #352Re: Q: Adresse einer Methode
From: Reinhard Pfau
Date: Fri, 01 Sep 1995 07:32
Date: Fri, 01 Sep 1995 07:32
44 lines
2659 bytes
2659 bytes
Wolfgang Muees (wolfgang@wmsickte.escape.de) wrote: : Hallo Reinhard, [ DEL: Prob.: Adresse einer Memberfkt. & Frage, wozu ] : > Wozu das gut sein soll?? Na, zum Bleistift fuer Callbacks!! [ DEL: Beispiel, wo ich das schon benutzt habe ] : Und warum - in 3 Teufels Namen - nimmst Du nicht eine statische : Memberfunktion, die |ber einen abgespeicherten Zeiger auf die : virtuelle Member-Funktion der Unterklasse zugreift? Das ist doch : im Endeffekt genau dasselbe, nur ohne Krampf. Merken mu_t Du Dir : den Zeiger auf das Objekt sowieso. Hmm, ein LowLevel-Netzanalysetool oder Programme, die Netzdaten auf OSI-Ebene (ca.) 3 bearbeiten, hast du wohl noch nie programmiert?? Natuerlich kann ich in meine Basisklasse eine statische Memberfkt aufnehmen, die als Callback dient. Nur muesste diese in meinen Fall eine Liste ver- walten, die Paare von Zeigern enthaelt: Zeiger auf ECB und Zeiger auf die Instanz, damit aus dem ECB-Zeiger (den meine Callback-Fkt als Parameter bekommt) den Zeiger auf die Instanz bekommen kann. Das Durchsuchen einer solchen Liste kostet aber Zeit; und da der Callback aus einer Interrupt- routine erfolgt, habe ich die in meinem Fall nicht. Es ist halt wesentlich schneller, den Callback _direkt_ zur richtigen Instanz umzuleiten. (Dort muss ich zwar auch eine ECB-Liste fuehren, da mehrere Callbacks ausstehen koennen, aber diese ist wesentlich kleiner und kann als array ausgefuehrt sein, da man i.a. die benoetigte Groesse fuer eine bestimmte Instanz abschaetzen kann. In meiner Basisklasse wuesste ich nicht, wieviele Instanzen wieviele Callbacks gleichzeitig ausstehen haben koennen.) : > Ich hoffe, ich konnte dir ein Bild davon vermitteln, das es in der : > Praxis doch Faelle gibt, wo man die Adresse einen Memberfunktion braucht. : > : Nein. Evtl. jetzt..??? *hoff* : > mfg Reinhard. : MFG : Wolfgang Reinhard. -- /-- Reinhard Pfau --- (ED-Pfau) --------------------------------------------\ | eMail: gz342@appl2.hrz.uni-siegen.de | IRC: Mubo | no home-page | +----------------------------------------------------------------------------+ | In 1995, Win95 will work with bugs; but in 1996 it will not work at all!! |
Technical Details
Message-ID:
<426ctr$5mj@si-nic.hrz.uni-siegen.de>Path:
arc1-ca.pugleaf.net!appl2.hrz.uni-siegen.de!gz342References:
<41ibde$pnu@hades.rz.uni-sb.de> <5spjy8DTpZB@wmsickte.escape.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!appl2.hrz.uni-siegen.de!gz342 From: gz342@appl2.hrz.uni-siegen.de (Reinhard Pfau) Newsgroups: de.comp.lang.c++ Subject: Re: Q: Adresse einer Methode Date: 1 Sep 1995 07:32:11 GMT Organization: HRZ, UNI/GHS Siegen Message-ID: <426ctr$5mj@si-nic.hrz.uni-siegen.de> References: <41ibde$pnu@hades.rz.uni-sb.de> <5spjy8DTpZB@wmsickte.escape.de> NNTP-Posting-Host: appl2.hrz.uni-siegen.de X-Newsreader: TIN [version 1.2 PL2]