I need some help here.
Chris Nicholson-Sauls
ibisbasenji at gmail.com
Thu Aug 31 12:41:52 PDT 2006
Damian wrote:
>>class MyArray(T) {
>> private T[] _data;
>>
>> T opIndexAssign(uint index, T value) {
>> notifyThatDataHasChanged();
>> return _data[index] = value;
>> }
>>
>> T opIndex(uint index) {
>> return _data[index];
>> }
>> ...
>>}
>>
>>This means that you can use your class's opIndex for something else.
>>Alternatively, you could use this interface to return an immutable
>>version of _data, just by not supporting opIndexAssign.
>>
>
>
> I would have to use
> MyArray!(MyArray!(char)) _data;
> for _data to be really immutable.
> Anyway, I can't do this that way, since my class "cl" couldnt modify
> _data either.
>
Actually yes it could, as all members of the same module have implicit "friend"
relationships. So, since 'c1' and the wrapper class (which should probably be a nested
class anyhow) would be in the same module, 'c1' would have access to the wrapper's private
'data' field.
-- Chris Nicholson-Sauls
More information about the Digitalmars-d-learn
mailing list