🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#291697
From: Adam M
Date: Wed, 09 Dec 2020 11:05
38 lines
1400 bytes
On Wednesday, December 9, 2020 at 12:58:29 PM UTC-5, heby wrote:
> On 09/12/2020 18:47, Jacek Jaworski wrote: 
> >> template < _T > 
> >> class MojaKontrolka : public _T 
> > W brew temu co pisze Adam to nie zadziała, bo klasa dziedzicząca po QObject nie może być szablonem
> To bardzo interesujace. 
> 
> template< typename _T> 
> class Foo : public _T 
> { 
> }; 
> 
> class Bar : public Foo< QWidget > 
> { 
> Q_OBJECT 
> 
> Q_SIGNALS 
> ... 
> } 
> 
> I się kompiluje zarówno C++ jak i MOCem. W mocu znajdziesz: 
> Foo<QWidget>::staticMetaObject i inne ciekawoski z mocowania Qt. Qt w 
> wersji 5 coś. 
> 
> Innymi słowy, sprawdź sam. 
> 
> Rozwiązanie z mixinem jest dokładnie tym co potrzebujesz, nie wymaga 
> wielodziedziczenia i nie zawiera wad o których bym wiedział na podstawie 
> Twojego opisu używania na produkcji. Innymi słowy możesz już dzisiaj 
> zmienić wszystko na mixiny.
Czesciowo zgodze sie z kolege - to bedzie dzialac i nawet mi sie to podoba  - ma tylko jedna bardzo paskudna wade - koncowy kod puchnie przez template - w moim przypadku klasa display ma okol 1000 lini a w zrodle jest ponad 150 klas dziedziczacych po display (nie liczac innego "paskudztwa") - nawet nie chce myslec jak koncowy kod by wygladal :-(

Message-ID: <0ae10656-cdda-4382-a912-d8d7a25a1d4dn@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> <8d469f13-e697-4488-8adf-29117a3eeb8cn@googlegroups.com> <rqqscj$p0n$1@dont-email.me> <b093aa7a-52ad-414b-b1c5-28d1d94a88d5n@googlegroups.com> <rqr383$gtr$1@dont-email.me>