Article View: pl.comp.lang.c
Article #310305Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: Maciek Godek
Date: Tue, 08 Dec 2020 10:35
Date: Tue, 08 Dec 2020 10:35
20 lines
3583 bytes
3583 bytes
poniedziałek, 7 grudnia 2020 o 21:53:05 UTC+1 Wojciech Muła napisał(a):
> Czepiłeś się tego wielodziedziczenia, jakby to był jakiś cud natury, a ta cecha jest marginalna, używana tak naprawdę sporadycznie (no i oczywiście w klasyczny dla C++ sposób skopana, patrz dziedziczenie wirtualne). Ludzkość bowiem dość dawno temu zauważała, że skomplikowanych systemów nie da się łatwo modelować grafami acyklicznymi, że bardziej praktyczna jest kompozycja typów.
Z tego co rozumiem, wielodziedziczenie umożliwia właśnie tworzenie cyklicznych grafów. (natomiast hierarchie wynikające z kompozycji typów będą zawsze acykliczne)
Raz tylko spotkałem się z kimś, kto próbował uzasadnić potrzebę wielodziedziczenia, tutaj:
https://www.quora.com/Do-C-developers-find-multiple-inheritance-a-useful-feature-Do-Java-developers-ever-find-themselves-wishing-Java-supported-it/answer/Mario-Galindo-Queralt
jednak, jak zwróciłem uwagę w komentarzu, ten sam cel mógłby lepiej osiągnąć za pomocą zwykłej kompozycji.
Swego czasu szukałem historycznego uzasadnienia dla wielodziedziczenia, i jedyne, co znalazłem, to przykład z książki Coxa i Novobilskiego "Object Oriented Programming: An Evolutionary Approach", gdzie dla uzasadnienia wielodziedziczenia posługują się przykładem "zabawkowego samochodu" ("czy jest to rodzaj zabawki, czy rodzaj samochodu?", pytają, odpowiadając sobie, że dzięki wielodziedziczeniu może być "i jednym, i drugim")
Trochę swego czasu mówiłem o tym tutaj:
https://youtu.be/apCBEpjPi_Y?t=2881
> Piszę w tym języku od wielu lat i mógłbym wymieniać więcej kwiatków, np. poznęcać się nad "metaprogramowaniem", które pojawiło się w C++ przez przypadek i tak też działa. Ale, z całym szacunkiem, nie chce mi się, bo jest to po prostu nudne.
Ja uważam, że rzetelna krytyka jest zawsze wartościowa.
Inna rzecz, że programiści często odbierają krytykę narzędzi jak atak personalny, albo gloryfikują je jakby były nie wiadomo czym.
Technical Details
Message-ID:
<edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.etla.org!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <d9830106-c21a-4564-b45f-0766ef86181fn@googlegroups.com> <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com> <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:a355:: with SMTP id m82mr13334910qke.74.1607423758112; Tue, 08 Dec 2020 02:35:58 -0800 (PST) X-Received: by 2002:ac8:5893:: with SMTP id t19mr21930755qta.3.1607423757927; Tue, 08 Dec 2020 02:35:57 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!news.etla.org!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Tue, 8 Dec 2020 02:35:57 -0800 (PST) In-Reply-To: <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=213.192.68.153; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 213.192.68.153 References: <478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <d9830106-c21a-4564-b45f-0766ef86181fn@googlegroups.com> <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com> <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com> Subject: Re: Sztuka Kodowania w C++ - Nowa Wersja! From: Maciek Godek <godek.maciek@gmail.com> Injection-Date: Tue, 08 Dec 2020 10:35:58 +0000 Lines: 45 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit