Article View: de.comp.lang.c++
Article #80Re: Lippmann - was ist das?
From: Matthias Urlichs
Date: Tue, 15 Dec 1992 22:09
Date: Tue, 15 Dec 1992 22:09
50 lines
3035 bytes
3035 bytes
In de.comp.lang.c++, article <HF.92Dec15135859@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>, hf@tk.telematik.informatik.uni-karlsruhe.de (Harald Fuchs) writes: > In article <1gkcsjINNrm4@smurf.smurf.sub.org>, urlichs@smurf.sub.org (Matthias Urlichs) writes: > > > Genausogut (und meiner Meinung nach sinnvoller) kann ich die Sprache so > > definieren, dass sie generell von dynamischer Bindung ausgeht. > > Schon wieder so einer, der aus C++ ein zweites Eiffel oder Trellis > machen will :-) > Nein, aber... > Jede Art von dynamischer Bindung (egal ob ueber vtbl oder nicht) kostet > ein paar Taktzyklen mehr und macht die entsprechenden Objekte ein > bisschen groesser, und deshalb ist eben statische Bindung der Default. > Ausser das Programm ist so strukturiert und der Compiler+Linker so intelligent, dass die dynamische Bindung wieder rausfliegt. Meiner Erfahrung nach trifft das fuer einen grossen Teil der Spielobjekte, d.h. derer die sowieso nicht verfeinnert werden, sowieso zu. Ausserdem koennte ein noch _etwas_ intelligenterer Compiler auch Zuweisungen von Pointer-auf-B an Pointer-auf-A (A sei die Oberklasse von B) markieren. Wenn es solche nicht gibt, brauchen wir auch keine dynamische Bindung. (Bevor jetzt wieder jemand meckert: Mir ist auch klar, dass man das nicht zu 100% erkennen kann, und unter C++ schon gleich gar nicht. Aber eine 95%-Loesung wuerde in den meisten real auftretenden Faellen funktionieren, und fuer den Rest (oder fuer dumme Compiler) schreiben wir das "virtual" eben zur Klasse. Nicht zur Funktion, denn da hat es meiner Meinung nach wirklich ncihts zu suchen.) > Wenn Du dynamische Bindung als Default haben willst, musst Du > konsequenterweise auch verlangen, dass Objekte nur ueber Referenzen oder > Pointer angesprochen werden, und das ist der Schritt von "C++" zu "D". Wieso? Bei direkten Objekten (oder wie auch immer das in C++ heisst) ist statisch == dynamisch. Fein. Ein Problem weniger. :-) > > Das von Dir erwaehnte Woertchen "sinnvoller" bezieht sich auf die reine > OO-Lehre und ist deswegen im Kontext von C++ mit Vorsicht zu geniessen. Umgekehrt -- C++ an sich ist mit Vorsicht zu geniessen. :-) -- Da saeuft man nun Tag fuer Tag - und keiner dankt es einem. -- Matthias Urlichs -- urlichs@smurf.sub.org -- urlichs@smurf.ira.uka.de /(o\ Humboldtstrasse 7 -- 7500 Karlsruhe 1 -- Germany -- +49-721-9612521 \o)/
Technical Details
Message-ID:
<1gll29INNqb8@smurf.smurf.sub.org>Path:
arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!nntp-server.caltech.edu!ira.uka.de!smurf.sub.org!newsReferences:
<HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> <1gkcsjINNrm4@smurf.smurf.sub.org> <HF.92Dec15135859@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!nntp-server.caltech.edu!ira.uka.de!smurf.sub.org!news From: urlichs@smurf.sub.org (Matthias Urlichs) Newsgroups: de.comp.lang.c++ Subject: Re: Lippmann - was ist das? Date: 15 Dec 1992 23:09:13 +0100 Organization: University of Karlsruhe, FRG Lines: 50 Message-ID: <1gll29INNqb8@smurf.smurf.sub.org> References: <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> <1gkcsjINNrm4@smurf.smurf.sub.org> <HF.92Dec15135859@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> NNTP-Posting-Host: 127.0.0.1