I believe it's a bug in the compiler. It's non-sense to require an instance
when those are class-level instances.
However as a workaround you can use static fields. You can still initialize
them with class construct { } or static construct { }.
Also if you were thinking of overriding a protected class field, I hardly
believe that's implemented (there's a bug somewhere about that).


On Sun, Sep 29, 2013 at 5:58 PM, Thomas Olson <tol...@stratagium.net> wrote:

>
>
> Hello,
>
> This is the second time I've tried to post to the list, but I haven't seen
> my first attempt show up in the vala-list archive yet, so I thought I would
> resend, just in case.
>
> I'm still learning my way around vala so I may be doing something wrong,
> but according to the docs at 
> https://wiki.gnome.org/Vala/**Manual/Classes<https://wiki.gnome.org/Vala/Manual/Classes>
> :
>
>  * Class members are shared between all instances of a class. They can
>    be accessed without an instance of the class, and class methods will
>    execute in the scope of the class.
>
>
> This does not appear to be the case.  In the following example I cannot
> access the prop method of the Parent or Child classes without instantiating
> an instance of those classes.
>
> public class Parent : Object {
>     protected class int _prop;
>     public class int prop() { return _prop; }
>     class construct {
>         _prop = 0;
>     }
> }
>
> public class Child : Parent {
>     class construct {
>         _prop = 1;
>     }
> }
>
> Parent p = new Parent();
> print ("Parent.prop: %d\n", p.prop());         // Works as expected
> print ("Parent.prop: %d\n", Parent.prop());    // error: Access to
> instance member `Parent.prop' denied
>
> Child c = new Child();
> print ("Child.prop: %d\n", c.prop());        // Works as expected
> print ("Child.prop: %d\n", Child.prop());    // error: The name `prop'
> does not exist in the context of `Child'
>
> Is this the desired behavior or are class methods, suppose to only be
> accessible from class instances?
>
> Kind Regards,
>
> Tom
>
>
> ______________________________**_________________
> vala-list mailing list
> vala-list@gnome.org
> https://mail.gnome.org/**mailman/listinfo/vala-list<https://mail.gnome.org/mailman/listinfo/vala-list>
>



-- 
www.debian.org - The Universal Operating System
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to