free method again, treat class as name space only

Ary Borenszweig ary at esperanto.org.ar
Fri Aug 8 05:15:25 PDT 2008


davidl a écrit :
> 在 Thu, 07 Aug 2008 21:35:41 +0800,Lionello Lunesu 
> <lio at lunesu.remove.com> 写道:
> 
>> davidl wrote:
>>> class A
>>> {
>>>    void func(){ writefln("hello"); }
>>> }
>>>  class B
>>> {
>>>    void func(){ A.func(cast(A)cast(void*)this); }  // sometimes 
>>> people need this.
>>> }
>>>  partial class is good, but it's likely to introduce a lot compiler 
>>> bugs, and it's likely to increase the compile time.
>>>  multiple inheritance is also nice, also likely to introduce compiler 
>>> bugs, and multiple inheritance
>>> make the thing more obscure sometimes, while it needs to be clear.
>>>  the solution I proposed is simple and compact. It can solve all what 
>>> partial class & MI can solve.
>>> It won't much bring bad taste in syntax.
>>
>> What about a static function in a class? Isn't that basically 
>> "treating class as name space only"?
>>
>> L.
> 
> That can't do what MI do.
> 
> While the way I proposed can. Because you send the `this` pointer in

Can you give a good example where the thing you want to do is useful? I 
see it as a hack into the OO system.



More information about the Digitalmars-d mailing list