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