El lun., 30 abr. 2018 a las 11:08, Elizabeth Mattijsen (<l...@dijkmat.nl>)
escribió:

> > On 30 Apr 2018, at 10:55, Theo van den Heuvel <vdheu...@heuvelhlt.nl>
> wrote:
> >
> > Hi all,
> >
> > trying to make sense of the following excerpt from the documentation on
> object construction:
> >
> > Due to the default behavior of BUILDALL and BUILD submethods, named
> arguments to the constructor new derived from Mu
> > can correspond directly to public attributes of any of the classes in
> the method resolution order, or to any named
> > parameter of any BUILD submethod.
> >
> >
> > I would like to build a class A and subclasses AB and more such that AB
> and friends differ in the default attribute values. On the basis of the
> docs I expected this to work:
> >
> > #<code>
> > class A {
> > has Int $.a;
> > method sayit() { say $!a }
> > }
> >
> > class AB is A {
> > submethod BUILD(:$!a = 17){}
> > }
> >
> >
> > my $ab = AB.new().sayit;
> > #</code>
> >
> > however. I get "Attribute $!a not declared in class AB", which makes
> sense.
> > How should I write this instead?
>
> Perhaps a recent answer by Jonathan Worthington to a similar question on
> StackOverflow can be of help here:
>
>
> https://stackoverflow.com/questions/50031400/inheriting-private-attributes-in-perl-6
>
>
And this is why I always encourage people to post questions to
StackOverflow. Or also to StackOverflow :-)

JJ

Reply via email to