🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#310312
From: heby
Date: Wed, 09 Dec 2020 17:48
39 lines
3174 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.
Technical Details
Message-ID: <rqr2lf$cu5$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!eternal-september.org!reader02.eternal-september.org!.POSTED!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>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: heby <heby@poczta.onet.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Sztuka Kodowania w C++ - Nowa Wersja!
Date: Wed, 9 Dec 2020 18:48:29 +0100
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <rqr2lf$cu5$1@dont-email.me>
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>
Mime-Version: 1.0
Injection-Date: Wed, 9 Dec 2020 17:48:31 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c147573f09cc058fb17380c8004c34c7"; logging-data="13253"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/BFBJE95FThMdwTtFmylXb"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1
Cancel-Lock: sha1:U7Ko07rpe69VzWWY+/PyXzHxruo=
In-Reply-To: <82264c0b-0b5f-4a44-9a8d-75d8022264ban@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit