c++ - Private member accessibility from private class
- "Włodzimierz Skiba" <abx abx.art.pl> Jan 02 2006
- Bertel Brander <bertel post4.tele.dk> Jan 03 2006
- "Walter Bright" <newshound digitalmars.com> Jan 03 2006
Hi!
Using 8.45 for code:
class tmPart {
private:
static char sEndl;
struct Endl {
char mEndl;
Endl(char eol) {mEndl = sEndl; sEndl = eol;};
~Endl() {sEndl = mEndl;};
};
};
I'm getting:
test.cpp(6) : Error: member 'tmPart::sEndl' of class 'tmPart' is not
accessible
test.cpp(7) : Error: member 'tmPart::sEndl' of class 'tmPart' is not
accessible
I'm not sure whether this should be expected or not. Is that fine? Up to now I
tested VC, Borland and GCC and they accept it.
Great to see another year with DMC!
ABX
Jan 02 2006
Włodzimierz Skiba wrote:Using 8.45 for code: class tmPart { private: static char sEndl; struct Endl { char mEndl; Endl(char eol) {mEndl = sEndl; sEndl = eol;}; ~Endl() {sEndl = mEndl;}; }; }; I'm getting: test.cpp(6) : Error: member 'tmPart::sEndl' of class 'tmPart' is not accessible test.cpp(7) : Error: member 'tmPart::sEndl' of class 'tmPart' is not accessible I'm not sure whether this should be expected or not. Is that fine? Up to now I tested VC, Borland and GCC and they accept it.
The C++ standard states: "11.8 Nested classes [class.access.nest] The members of a nested class have no special access to members of an enclosing class, nor to classes or functions that have granted friendship to an enclosing class; the usual access rules (clause 11) shall be obeyed. The members of an enclosing class have no special access to members of a nested class; the usual access rules (clause 11) shall be obeyed." I think DMC is right. /b
Jan 03 2006
"Bertel Brander" <bertel post4.tele.dk> wrote in message news:dpf7hn$1i60$1 digitaldaemon.com...I think DMC is right.
Thanks for doing the research on this. It's nice to be right <g>.
Jan 03 2006








"Walter Bright" <newshound digitalmars.com>