🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Protected inheritance

#1071
From: Nico Josuttis
Date: Thu, 21 Dec 1995 10:54
47 lines
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!nico
References: <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