But it would be really great if we can select level of protection, and declare that some variable is const only when accessed at public or protected level. Here is a sample:
class C1 { // C++ - present
public:
void foo_x() { /* do some magic with x */ x = 5; }
int get_x() const { return x;}
private:
int x;
};
class C2 { // C++ - future?
public:
void foo_x() { /* do some magic with x */ x = 5; }
public const:
int x;
}
Member x can be freely read/write within C2 member functions, but when accessed from outside, x is read only.
This is not as powerful as Borland's extension __property, which allow to declare property as alias for member variable, or setup getter/setter for a property. However I think proposed extension wouldn't bring much work for compilers authors.