🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #80

Re: Lippmann - was ist das?

#80
From: Matthias Urlichs
Date: Tue, 15 Dec 1992 22:09
50 lines
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!news
References: <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