Article View: pl.comp.lang.c
Article #291688Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: =?UTF-8?Q?Wojcie
Date: Wed, 09 Dec 2020 00:12
Date: Wed, 09 Dec 2020 00:12
64 lines
3309 bytes
3309 bytes
On Tuesday, December 8, 2020 at 11:35:59 AM UTC+1, godek....@gmail.com wrote: > 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) Nie. Pojedyncze dziedziczenie daje Ci drzewiastą hierarchię, a wielodziedziczenie grafy skierowane acykliczne. W hierarchii typów nie możesz mieć cyklu. Przynajmniej ja nie potrafię sobie tego wyobrazić. > 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. Używałem wielodziedzenia jako środka technicznego, bo było wygodniej coś zrobić, ale nie kojarzę ani jednego użycia na poziomie koncepcyjnym. Tak samo używałem pokręconego wzorca CRTP, żeby coś było szybciej. Tylko te przypadki policzę na placach jednej ręki. > > 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. Produkowanie się tutaj, jeszcze po polsku, to strata czasu. W ogóle krytykowanie C++, nawet konstruktywne, to strata czasu. Realnie to by trzeba składać proposale, przechodzić przez całą biurokrację itd. Przykład biblioteki fmt: istnieje od 8 lat, jest powszechnie używana, jej standaryzacja zajęła rok albo dwa i to będzie dopiero w C++20. Dobre dla kogoś kto ma dużo wolnego czasu, albo jestoddelegowany w firmie i robi to w godzinach pracy. > Inna rzecz, że programiści często odbierają krytykę narzędzi jak atak personalny, albo gloryfikują je jakby były nie wiadomo czym. To kwestia wieku, młodzi się zwykle bardzo przejmują. Z wiekiem i doświadczeniem uczysz się, że wzruszenie ramionami to często i tak zbyt gwałtowna reakcja. :) w.
Message-ID:
<7ba4dfc5-5edd-4847-b45d-9fbce7d764b7n@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> <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>