April 13, 2007
Hallo,

import std.stdio;

class Value {
        private int a;
}

void main() {
        Value value = new Value;
        value.a=3;
        writefln(value.a);
}

"a" is a private variable, but i can set it with
value.a=3;
outside the class.
Is there a way to avoid this.

Under Attributes in the homepage i found this
"Private means that only members of the enclosing class can access the member, or members and functions in the same module as the enclosing class."

But value.a=3;  isn't enclosing in a class.

Thanks

April 13, 2007
nobody napisaƂ(a):
> Hallo,
> 
> import std.stdio;
> 
> class Value {
>         private int a;
> }
> 
> void main() {
>         Value value = new Value;
>         value.a=3;
>         writefln(value.a);
> }
> 
> "a" is a private variable, but i can set it with value.a=3;
> outside the class.
> Is there a way to avoid this.
> 
> Under Attributes in the homepage i found this
> "Private means that only members of the enclosing class can access the member, or members and functions in the same module as the enclosing class."
> 
> But value.a=3;  isn't enclosing in a class.
> 
> Thanks
> 

But it is in same module (read: file), so there is access to private members.

Just put class definition to another file...

BR
Marcin Kuszczak
aarti_pl