Article View: pl.comp.lang.perl
Article #52131Re: Wielokrotne dziedziczenie z jawnym wywołaniem konstruktorów klas bazowych z parametrami
From: Bartosz Jakubski
Date: Thu, 06 Jan 2011 16:34
Date: Thu, 06 Jan 2011 16:34
56 lines
3508 bytes
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-mailReferences:
<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