🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #291686

Re: Sztuka Kodowania w C++ - Nowa Wersja!

#291686
From: Maciek Godek
Date: Tue, 08 Dec 2020 02:35
45 lines
2477 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.

Message-ID: <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>
Path: polish.pugleaf.net!archive.newsdeef.eu!archive!apf2.newsdeef.eu!not-for-mail
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>