Article View: pl.comp.lang.c
Article #291695Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: heby
Date: Wed, 09 Dec 2020 18:48
Date: Wed, 09 Dec 2020 18:48
39 lines
1643 bytes
1643 bytes
On 09/12/2020 18:29, Adam M wrote: >> template < _T > >> class MojaKontrolka : public _T > To zadziala ale twoj template musi akumulowac kod aby obsluzyc wszystkie sytuacje gdzie zachodzi interakcja pomiedzy twoim kodem a klasami QTw przypadku dziedziczenia wielobazowego Ale tu nie ma wielobazowego. class MojButton : public MojaKontrolka< QButton > > MojaKontrolka ma tylko podstawowy kod Tak właśnie jest. > a caly "glue code" idzie do implementacji poszczegolnych klas I tu też właśnie tak jest. > - nie musisz pisac kody na wszystkie mozliwe klasy QT ale tylko na te ktor ci sa potrzebebne i tylko wtedy kiedy ci sa potrzebne. I tu tez tak jest. > Zreszta uzywanie dzieciczenia wielobazowego przy pracy z QT to standard Z grubsza: pisuje w Qt relatywnie duży kawał kodu. Nie żebym był jakimś specjalistą od Qt, ale wielodziedziecznia u mnie tyle co kot napłakał. W dodatku wszystkie powody są możliwe do przeskoczenia, zdecydowana większośc implementacji wielobazowego dziedziczenia wynika z lenistwa. Ciężko mi wskazać palcem inny na przestrzeni 15 lat dzibdziania w sporej aplikacji, która w częsci jest m.in. Qt. > - ponizszy przyklad z kodu na produkcji: Za mało aby ocenić, ale jestem pi x dzwi przekonany że dziedziczenie wielobazowe (szczególnie implementacji) jest zbędne. Czego dowodem jest Java oraz fakt że jeszcze mi się nigdy nie przydało *naprawdę* poza pseudo-semantyką typu boost::noncopyable albo shared_from_this. To co pkazałem ma nawet nazwę. To Mixin. Przy czym puryści programowania obiektowego mogą mnie za to ukatrupic, więc tylko szeptem to podpowiadam.
Message-ID:
<rqr2lf$cu5$1@dont-email.me>
Path:
polish.pugleaf.net!archive.newsdeef.eu!apf1.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> <8d469f13-e697-4488-8adf-29117a3eeb8cn@googlegroups.com> <rqqscj$p0n$1@dont-email.me> <82264c0b-0b5f-4a44-9a8d-75d8022264ban@googlegroups.com>