Readonly class members

Georg Wrede georg.wrede at nospam.org
Thu Sep 14 06:59:56 PDT 2006


> From time to time I wish that C++ would have a readonly 
> specifier that  works like this:
> 
> class Obj {
>     void f() {
>         int m_size = 10;  //ok
>     }
> 
>     readonly int m_size;
> }
> 
> void func() {
>     Obj o = new Obj;
>     int v;
> 
>     v = o.m_size;  //ok
>     o.m_size = 5;  //error
> }

> 'm_size' can be accessed inside 'Obj' as normal, but outside the class
> the variable cannot be modified. Of course, I could provide a read
> property (that is, a function in C++) for accessing 'm_size' (in
> addition to a write property), but when it's not necessary, this way is
> simplier (and a little bit faster, etc.).
> 
> In D this, however, is not needed because you can use properties to wrap
> member variables.
> (Hopefully the properties will be extended to support the same methods
> that can be applied to variables also... ;) ) 

Hmm. IMHO, this would be very easy to implement in the compiler. It 
would make class definitions clearer, and in many cases would lessen the 
need to write code.

Just off-hand I can imagine quite a few situations where I'd use this.



More information about the Digitalmars-d mailing list