nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Mehrfachvererbung (was: Defekt in der Sprache? || Serializable-Interface realisieren)

Von: Bodo Thiesen (bothie@gmx.de) [Profil]
Datum: 21.12.2008 21:45
Message-ID: <gim9th$2u0$03$2@news.t-online.com>
Newsgroup: de.comp.lang.iso-c++
* "Helge Kruse" <Helge.Kruse-nospam@gmx.net> hat geschrieben:
>> "Bodo Thiesen" <bothie@gmx.de> wrote in message 
> 
>> In welchem Fall braucht man eine Basisklasse, die mehrmals vererbt 
>> wird, tatsächlich doppelt? Mir fällt einfach kein
Beispiel ein
, bei
>> dem man das braucht, und es nicht mit einem einfachen Member
lösbar

>> ist.

> Deine Klasse Jeopardy gehört zu einem GUI System, die das Handle f
ür
> das GUI Objekt hält.

Ok. Dann gehe ich aber davon aus, daß abgeleitete Objekte davon ledigl
ich
komplexere GUI-Objekte werden.

> Es ist wohl einleuchtend, dass hier für jeden 
> Derivator ein eigenes Handle gemeint sein soll. Die Klasse Jeopardy 
> definiert eine Methode "virtual void OnClick(Jeopardy&)" die bei
einem 
> entsprechenden Ereignis aufgerufen wird. Durch Überschreiben der 
> Methode in DoubleJeopardy erhält das Objekt die Benachrichtigung
Ã
¼ber
> jedes Ereignis.

Ok, also: Ich gehe davon aus, DJ ist bei Dir jetzt z.B. eine Dialog-Box.
Dann wäre bei mir das ganze aber nur einmal von J abgeleitet (dort kom
mt
dann das Fensterhandle oder whatever rein) und DJ besitzt einen Haufen von
Members vom Typ J bzw. von diesem abgeleiteten Typen (z.B. Button,
Inputboxes, die alle für sich genommen von J abgeleitet sind).

> Wenn die Derivatoren als Member eingebunden sind, erhälst Du kein 
> Benachrichtugung in DoubleJeopardy.

Richtig, dafür müsste man dann eine Hook-Funktion anbieten.
Aller
dings:
Wie sollte OnClick in Deinem Fall aufgerufen werden? DJ * dj=...;
dl->OnClick(dj); würde es ja schonmal nicht tun - der Aufrufer
mü
sste
wissen, womit er es zu tun hat - dann kann er aber genausogut eine
entsprechend spezialisiertere Funktion benutzen. Ich denke aber sowieso,
daß die OnClick-Methode eher von Lowlevel-Seite getriggert wird.

Also, ich gebe Dir jetzt noch eine Chance, mir das Beispiel zu erkläre
n,
vielleicht verstehe ich es ja beim zweiten mal - aber so bringt mir das
zum Verständnis garnichts. (Versuche dabei mal etwas konkreter zu werd
en.)

Gruß, Bodo

[ Auf dieses Posting antworten ]

Antworten