Article View: de.comp.lang.c++
Article #72Re: Lippmann - was ist das?
From: Matthias Urlichs
Date: Tue, 15 Dec 1992 10:43
Date: Tue, 15 Dec 1992 10:43
36 lines
1946 bytes
1946 bytes
In de.comp.lang.c++, article <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>,
hf@tk.telematik.informatik.uni-karlsruhe.de (Harald Fuchs) writes:
>
> Der Vergleich hinkt. "register" kann man ignorieren, ohne was an der
> Semantik eines Programms zu aendern; "virtual" hingegen nicht:
>
> struct A {
> /*virtual*/ void f () { cout << "A::f\n"; }
> };
>
> struct B: A {
> void f () { cout << "B::f\n"; }
> };
>
> main () {
> A* p = new B;
> p->f ();
> }
>
> Es ist zwar anzunehmen, dass der Anwender an dieser Stelle dynamische
> Bindung will, aber die Sprachdefinition erfordert statische Bindung.
Das ist aber ein Problem der Sprachdefinition.
Genausogut (und meiner Meinung nach sinnvoller) kann ich die Sprache so
definieren, dass sie generell von dynamischer Bindung ausgeht. Wenn ich
eine bestimmte statische Variante haben will, muss ich die dann eben explizit
aufrufen -- geht in C++ schliesslich ohne Probleme.
Das haette dann auch den Vorteil, dass im genannten Beispiel explizit
p->A::f() (oder so aehnlich) stehen wuerde und der menschliche Debugger :-)
nicht stundenlang rumraetseln muss, wieso jetzt A::f und nicht B::f aufge-
rufen wurde.
--
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:
<1gkcsjINNrm4@smurf.smurf.sub.org>Path:
arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!howland.reston.ans.net!sol.ctr.columbia.edu!ira.uka.de!smurf.sub.org!newsReferences:
<1g5sp6INN9d9@smurf.smurf.sub.org> <1362@mwtech.UUCP> <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!howland.reston.ans.net!sol.ctr.columbia.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 11:43:31 +0100 Organization: University of Karlsruhe, FRG Lines: 36 Message-ID: <1gkcsjINNrm4@smurf.smurf.sub.org> References: <1g5sp6INN9d9@smurf.smurf.sub.org> <1362@mwtech.UUCP> <HF.92Dec13113953@whyaduck.tk.telematik.informatik.uni-karlsruhe.de> NNTP-Posting-Host: 127.0.0.1