SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] Array i klasse



Hejsa,

Er der nogen særlig grund til, at du bruger et-argument udgaven af bless i 
stedet for 2 argumentversionen?

Med 1 argument versionen kan du komme i problemer, hvis du vil nedarve fra 
din Album-klasse.

--Anders


On Sat, 21 Sep 2002, Jan Eggert Kofoed wrote:

> Jeg har en klasse (Album i Album.pm)
> hvor jeg ønsker at have et array (Grupper, som optræder på et album).
> 
> Jeg har implementeret en metode (albumartist) som kan indsætte
> et element i et array, som jeg har lagt 'uden for klassen',
> dvs. uden for den hash, som initialiseres i constructor new.
> 
> Det ser ud til at virke efter hensigten, men jeg kunne godt tænke mig
> * at forstå objektorientering i Perl lidt bedre
> * at have en klasse, som ligner andre objektorienterede sprog.
> 
> Min løsning, se eksemplet (uddrag fra mit projekt) nedenfor,
> vil ikke tillade data-hiding, dvs. flere instantieringer af Album,
> antageligvis?
> 
> Hvordan kan jeg gemme et array i en klasse?
> Hvordan kan jeg tilgå (indsætte/hente data) arrayet?
> 
> Jeg har ikke kunnet finde eksempler i mine bøger
> eller i ActivePerl's dokumentation.
> 
> -------------------
> # $Header$
> 
> package Album;
> use strict;
> use Group;
> 
> my @_groups      = (); # first [0] is album artist, rest is tracks [t]
> 
> sub new
> {
>      my $self = shift;
> 
>      my $r_Album =
>      {
> 	"_name"        => undef,
> 	"_id"          => undef,
> 	"_dbname"      => undef,
> 	"_released"    => undef,
> 	"_albumartist" => undef
>      };
> 
>      bless $r_Album;
>      return $r_Album;
> } # constructor
> 
> sub albumartist
> {
>      my $self = shift;
>      if (@_)
>      {
> 	$self->{_albumartist} = shift;
> 	$_groups[0] = Group->new();
> 	print "scalar(_groups)=".scalar(@_groups)."\n";
>      }
>      return $self->{_albumartist};
> } # albumartist
> 
> -------------------
> 
> 
> mvh
> Jan Eggert Kofoed
> 
> 

-- 
-------------------------------------------
Cand.scient. Anders Sønderberg Mortensen
Dronning Olgas Vej 55A, st.tv.
DK-2000 Frederiksberg
DENMARK

Phone: + 45 38 86 57 20
-------------------------------------------




 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:54
Denne side vedligeholdes af MHonArc .