Static members and access attribute

Bruno Medeiros brunodomedeiros+spam at com.gmail
Fri Oct 24 06:00:45 PDT 2008


Sergey Gromov wrote:
> Fri, 24 Oct 2008 13:05:00 +0100,
> Bruno Medeiros wrote:
>> Uriel wrote:
>>> I've found some strange behaviour with static members and haven't noticed anything about it in the documentation.
>>>
>>> module a;
>>>
>>> class A
>>> {
>>>     private static int Foo;
>>> }
>>>
>>> import std.stdio;
>>>
>>> import a;
>>>
>>> void main()
>>> {
>>>     A.Foo = 1;
>>>     writeln(A.Foo);
>>>
>>> /*    
>>>     A obj = new A();
>>>     obj.Foo = 2;
>>>     writeln(A.Foo);
>>> */
>>> }
>>>
>>> Program will compile and print '1'. But if uncomment the second part of code compiler will say that "class a.A member Foo is not accessible".
>>> Is this a bug?
>> No, Foo is private, so you can't access it outside of the module where 
>> it is defined (module a).
> 
> Of course it's not a bug that the commented-out part fails.  It's a bug 
> that the first part of main() works.

Ah, duh, didn't notice that part, I agree.

-- 
Bruno Medeiros - Software Developer, MSc. in CS/E graduate
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D



More information about the Digitalmars-d mailing list