Article View: de.comp.lang.c++
Article #1071Re: Protected inheritance
From: Nico Josuttis
Date: Thu, 21 Dec 1995 10:54
Date: Thu, 21 Dec 1995 10:54
47 lines
2489 bytes
2489 bytes
In article <30d0266f.0@news.uni-konstanz.de>, Dietmar Kuehl <dietmar.kuehl@uni-konstanz.de> wrote: >Hi, >Arent Groebner (arent@pegasus.RoBIN.de) wrote: >:> Wer kann dieses Rätsel lösen: >:> >:> Public inheritance: Ist-Beziehung >:> Protected inheritance: ??? >:> Private inheritance: Hat-Beziehung > >Steve Clamage hat das ungefaehr folgendermassen ausgedrueckt >(uebersetzt nach deutsch und nicht woertlich, da ich das Zitat gerade >nicht zur Hand habe; kam diese Woche in comp.std.c++): > > Protected inheritance ist vorhanden, um konsistent zu bleiben. Ihm > ist allerdings keine Anwendung von protected inheritance bekannt. > Somit ist protected inheritance "eine Loesung auf der Suche nach > einem Problem". > >Das deckt sich mit meiner Erfahrung: Ich habe bisher noch keine >sinnvolle Anwendung von protected inheritance gefunden, wobei ich nicht >ausschliessen moechte, dass es keine gibt. Sorry, aber ich sehe das anders: Protected inheritance ist wie private inheritance eigentlich keine Vererbung, sondern getarnte Verwendung, also eine Hat-Beziehung. Das ist meiner Ansicht nach auch ziemlich klar, da auch protected inheritance wie private inh. die is-a Beziehung (automatische Typumwandlung in die Basisklasse) ausschliesst. Der subtile Unterschied zwischen private und protected ist doch nur, ob geerbte Komponenten bei weiterer Vererbung zugreifbar bleibt. Damit ist der Unterschied so, wie die Entscheidung zwischen private und protected bei neuen Komponenten: wenn man Vererbung erleichtern will, nimmt man protected, sonst private. Somit sind genauso viele Anwendungen fuer protected wie fuer private sinnvoll/denkbar. Merkwuerdigerweise verwenden hier die meisten private, obwohl bei Komponenten oft protected verwendet wird. Oder sehe ich da etwas zu einfach ? -- Nico address: BREDEX GmbH, Nicolai Josuttis email: nico@bredex.de Fallersleber-Tor-Wall 23 phone: +49 531 24330-0 D-38100 Braunschweig fax: +49 531 24330-99 Germany
Technical Details
Message-ID:
<DJxnMK.4p9@bredex.de>Path:
arc1-ca.pugleaf.net!lumumba.braunschweig.pop.de!bredex!nicoReferences:
<5yi-CASYmIB@pegasus.RoBIN.de> <5zfJZSNImIB@pegasus.RoBIN.de> <30d0266f.0@news.uni-konstanz.de>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!lumumba.braunschweig.pop.de!bredex!nico From: nico@bredex.de (Nico Josuttis) Subject: Re: Protected inheritance Message-ID: <DJxnMK.4p9@bredex.de> Reply-To: nico@bredex.de Organization: Bredex GmbH References: <5yi-CASYmIB@pegasus.RoBIN.de> <5zfJZSNImIB@pegasus.RoBIN.de> <30d0266f.0@news.uni-konstanz.de> Date: Thu, 21 Dec 1995 10:54:19 GMT