Usenet Replayer



iso-8859-2


Path:  news2.ip-mobilphone.net ! NNTPLoader.ip-mobilphone.net ! text.usenetserver.com ! out01b.usenetserver.com ! news.usenetserver.com ! in02.usenetserver.com ! news.usenetserver.com ! postnews.google.com ! news4.google.com ! feeder1-2.proxad.net ! proxad.net ! feeder1-1.proxad.net ! club-internet.fr ! feedme-small.clubint.net ! newsfeed00.sul.t-online.de ! t-online.de ! news.nask.pl ! news.nask.org.pl ! newsfeed.tpinternet.pl ! atlantis.news.tpi.pl ! news.tpi.pl ! not-for-mail
From:  SasQ <sasq1@go2.pl>
Newsgroups:  pl.comp.lang.c
Subject:  Prywatne dziedziczenie vs zawieranie w C++ FAQ
Date:  Wed, 05 Sep 2007 00:22:18 +0200
Organization:  Der grande totalle welt destrukszyn organizejszyn :P
Lines:  34
Message-ID:  <pan.2007.09.04.22.22.17.938704@go2.pl>
NNTP-Posting-Host:  bzl24.neoplus.adsl.tpnet.pl
Mime-Version:  1.0
Content-Type:  text/plain; charset=ISO-8859-2
Content-Transfer-Encoding:  8bit
X-Trace:  nemesis.news.tpi.pl 1188944845 2487 83.30.57.24 (4 Sep 2007 22:27:25 GMT)
X-Complaints-To:  usenet@tpi.pl
NNTP-Posting-Date:  Tue, 4 Sep 2007 22:27:25 +0000 (UTC)
User-Agent:  Pan/0.14.2 (This is not a psychotic episode. It's a cleansing moment of clarity.)
X-Received-Date:  Tue, 04 Sep 2007 18:22:16 EDT (text.usenetserver.com)
Xref:  news2.ip-mobilphone.net pl.comp.lang.c:215138


Siema.

Przeglądając sobie C++ FAQ natknąłem się na taki motyw:
http://www.parashift.com/c++-faq-lite/private-inheritance.html#faq-24.2 (Who's computer is this?)
i oczywiście pierwszą myślą, gdy zobaczyłem to:

class Car : private Engine

było: "WTF??! o_O"
Czy tylko mi się zdaje, czy oni w tym FAQ opowiadają bajki?
Piszą tam, że "private inheritance is a syntactic variant of
composition" ["Dziedziczenie prywatne jest składniową
odmianą zawierania"]. Jak dla mnie nie jest to prawdą, bo
dany zestaw funkcji/danych można odziedziczyć tylko raz,
a w przypadku zawierania można je mieć wielokrotnie
powtórzone w obiekcie. Kolejną różnicą jest fakt, że przy
zawieraniu nie można nadpisać metod wirtualnych, co jest
oczywiście możliwe gdy dziedziczymy.

To, że "z zewnątrz" dziedziczenie prywatne i zawieranie
wydają się wyglądać tak samo, nie oznacza jeszcze, że
to JEST to samo ;P Błędność podanego tam przykładu
narzuca się sama, gdy sobie uświadomić, że implementacja
klasy Car widzi tą zależność dziedziczenia i może z niej
korzystać. A jaki sens ma stwierdzenie, że samochód JEST
szczególnym przypadkiem silnika? :PPP Jest to idiotyzmem
nawet, jeśli reszta świata o tym nie wie ;J

Co o tym myślicie?
Mam rację, czy może coś przeoczyłem?


--
SasQ



Where you can get the newsgroup pl.comp.lang.c