"extending" existed class

Bill Baxter wbaxter at gmail.com
Wed Oct 18 06:10:43 PDT 2006


Lionello Lunesu wrote:
> novice2 wrote:
> 
>> Hello.
>> I have existed class (for example Stream in phobos), and i need add
>> new method to it. In the past (if i correctly remember), i was able
>> to do it by defining function, that accept instance of class as
>> first argument, and then use it function like instance.function()
>>
>> Now (DMD 1.70) i can't compile this code:
>>
>> //////////////////////////////
>> class A
>> {
>>   int method1() { return 1; }
>> }
>>
>> int method2(A a)
>> {
>>   return 2;
>> }
>>
>> void main()
>> {
>>    A a = new A;
>>    int i = a.method1();
>>    int k = a.method2();
>> }
>> //////////////////////////////
>>
>> Compiler say
>> 1.d(20): no property 'method2' for type '1.A'
>>
>> Can anyone say, what i missed, or the better way to "extend"
>> existed class without declare new class based on existed?
>> Thanks.
> 
> 
> It is, and was, only possible for arrays. But I sure wish it was 
> possible for all types (classes, but int/float/etc too!)
> 
> L.

Argh!  Why so many special case rules for arrays?!

--bb



More information about the Digitalmars-d-learn mailing list