Dynamic Arrays & Class Properties

Denis Koroskin 2korden at gmail.com
Thu Aug 28 11:47:46 PDT 2008


On Thu, 28 Aug 2008 22:22:44 +0400, Sergey Gromov <snake.scaly at gmail.com>  
wrote:

> Mason Green <mason.green at gmail.com> wrote:
>> Hi,
>>
>> Anyone know how to expose dynamic array elements via class properties?   
>> I would like to do something this this:
>>
>> class Foo {
>>
>>     private int[] m_dummy;
>>
>>     this() {
>>         m_dummy ~= 19;
>>         m_dummy ~= 77;
>>     }
>>
>>     int dummy( ??????? ) {
>>         return m_dummy[x];
>>     }
>> }
>>
>> void main() {
>>     auto foo = new Foo();
>>     Cout(foo.dummty[0]);     // Print 19
>> }
>>
>> Any help would be much appreciated!  The question marks are where I'm  
>> stuck....
>
> class Foo {
>     private int[] m_dummy;
>     const int dummy() {
>         return m_dummy;
>     }
> }
>
> I think this is better than tons of templates.
>

First, it should be like this:

class Foo {
     this()
     {
         m_dummy = new int[1];
         m_dummy[0] = 19;
     }

     const(int)[] dummy() {
         return m_dummy;
     }

     private int[] m_dummy;
}

Second, that's D2 :)

That's kinda strange, but unfortunately most of the discussion here is  
about D1, not D2 :(
There is no const in D1:

const int[] test = [0, 1, 2, 3];
test[0] = 2;

writefln(test[0]); // prints 2


More information about the Digitalmars-d-learn mailing list