🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52131

Re: Wielokrotne dziedziczenie z jawnym wywołaniem konstruktorów klas bazowych z parametrami

#52131
From: Bartosz Jakubski
Date: Thu, 06 Jan 2011 16:34
56 lines
3508 bytes
On 2011-01-06, Jarosław Lubczyński <guess@who.com.pl> wrote:
> W dniu 2011-01-06 12:20, Ireneusz Pluta pisze:
>>
>> Ten komunikat to wyjaśnia. Atrybut 'data' zadeklarowałeś jako required
>> w klasach pierwotnych, a nie umieściłeś go w konstrukcji. Dodaj go w
>> My::ClassC->new().
>
> Ale nie mam innego pomysłu, jak go dodać. Atrybut 'data' jest w *obu* 
> klasach bazowych, więc należy go sprefixować nazwą klasy, co, jak mi się 
> wydawało, próbowałem zrobić. Wywołanie:

Skąd ten pomysł z prefiksowaniem? ZTCW nie możesz mieć dwóch atrybutów
o tej samej nazwie i tyle. Jaką struturę próbujesz modelować? Bo trochę
dziwnie wygląda ten przykład. Nie bardziej naturalna byłaby
jakaś delegacja np.?

>
> $obj = My::ClassC->new	# (*)
> (
>          'info' => 'help',
>          'data' => 11,
>          'para' => 4342,
>          'parb' => 'ma kota',
> );
>
> oczywiście ustawia wartość  (tu: 11) w *obu* klasach bazowych, a nie o 
> to przecież chodzi...

Nie w obu klasach bazowych, tylko w obiekcie. On ma jeden atrybut (jeśli
dziedziczysz z wielu, to "użył się" z pierwszej bazowej.
>
> Aha, próba wywołania typu:
>
> $obj = My::ClassC->new
> (
>          'info' => 'help',
>          'My::ClassA::data' => 11,
>          'My::ClassB::data' => 31,
>          'para' => 4342,
>          'parb' => 'ma kota',
> );
>
> też nie prowadzi do sukcesu. No i pomysły mi się skończyły...

Chyba próbujesz zastosować w Moosie jakąś dziwną konwencję z jakiegoś
innego modułu. Proponuję na spokojnie przeczytać sobię dokumentację
Moose - jest naprawdę sympatyczna: Moose::Manual(::*) i Moose::Cookbook(::*)

Z pewnością _jakoś_ da się osiągnąć to co chcesz w Moose (przez ->meta
i Class::MOP naprawdę wiele da się zmienić), ale trudno oprzec się
wrażeniu, że na siłę jakiś problem wpasowałeś w wielokrotne
dziedziczenie i teraz próbujesz się wykopać :-)


-- 
Bartosz Jakubski
Technical Details
Message-ID: <ig4qur$2cs$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!not-for-mail
References: <ie9uh2$qfj$1@opal.futuro.pl> <kjzr5dheupb.fsf@ccfs1.fuw.edu.pl> <iedin2$bbc$2@inews.gazeta.pl> <kjzmxo5con2.fsf@ccfs1.fuw.edu.pl> <ifanvr$iut$1@inews.gazeta.pl> <kjzipyf7xpf.fsf@ccfs1.fuw.edu.pl> <ifcg1j$a6r$1@inews.gazeta.pl> <72ddf779-ba30-44e8-bf4d-132def818429@fu15g2000vbb.googlegroups.com> <ifv5fs$4ir$1@opal.futuro.pl> <7af449a1-136b-46b1-a3bf-7fc25fc1b8cd@w18g2000vbe.googlegroups.com> <ig07a6$18l$1@inews.gazeta.pl> <8dc8aba4-2abe-42db-82b5-366ba34a9d8d@l7g2000vbv.googlegroups.com> <ig2mrl$2cl$1@inews.gazeta.pl> <77910e78-c927-43fe-b6c9-feb092225395@d7g2000vbv.googlegroups.com> <ig4jq1$7r2$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!not-for-mail
From: Bartosz Jakubski <b.jakubski@trapp.gmail.com>
Newsgroups: pl.comp.lang.perl
Subject: Re: Wielokrotne dziedziczenie z jawnym
 wywołaniem konstruktorów klas bazowych z parametrami
Date: Thu, 6 Jan 2011 16:34:35 +0000 (UTC)
Organization: Netia S.A.
Lines: 56
Message-ID: <ig4qur$2cs$1@mx1.internetia.pl>
References: <ie9uh2$qfj$1@opal.futuro.pl> <kjzr5dheupb.fsf@ccfs1.fuw.edu.pl> <iedin2$bbc$2@inews.gazeta.pl> <kjzmxo5con2.fsf@ccfs1.fuw.edu.pl> <ifanvr$iut$1@inews.gazeta.pl> <kjzipyf7xpf.fsf@ccfs1.fuw.edu.pl> <ifcg1j$a6r$1@inews.gazeta.pl> <72ddf779-ba30-44e8-bf4d-132def818429@fu15g2000vbb.googlegroups.com> <ifv5fs$4ir$1@opal.futuro.pl> <7af449a1-136b-46b1-a3bf-7fc25fc1b8cd@w18g2000vbe.googlegroups.com> <ig07a6$18l$1@inews.gazeta.pl> <8dc8aba4-2abe-42db-82b5-366ba34a9d8d@l7g2000vbv.googlegroups.com> <ig2mrl$2cl$1@inews.gazeta.pl> <77910e78-c927-43fe-b6c9-feb092225395@d7g2000vbv.googlegroups.com> <ig4jq1$7r2$1@inews.gazeta.pl>
NNTP-Posting-Host: gw-netia.pl.hurra.com
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1294331675 2460 87.204.150.226 (6 Jan 2011 16:34:35 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Thu, 6 Jan 2011 16:34:35 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
User-Agent: slrn/0.9.9p1 (Linux)
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit