Overloading static methods

Steven Schveighoffer schveiguy at yahoo.com
Mon Sep 26 06:21:48 PDT 2011


On Sat, 24 Sep 2011 16:26:34 -0400, mta`chrono  
<chrono at mta-international.net> wrote:

> Quote: Steven Schveighoffer
>> An example I gave in the bug report just now is File.  Imagine you have
>> a File struct, and want to have an open method:
>>
>> struct File
>> {
>>    static File open(string fname);
>> }
>>
>> However, now this is valid code:
>>
>> File f; // <-------- here's the problem!
>> f.open(fname);  // does not do what you think it does...
>>
>
> Yes, but why is he able to get an instance of File? The Designer of
> "File" should have rather used a class and disallow to create any
> instance of it. (@disable this)

I think this post predates @disable this (not sure), but in any case, that  
is not the issue:

File f = File.open("blah.txt");
f.open("blah2.txt");

-Steve


More information about the Digitalmars-d mailing list