c++ - Private member accessibility from private class
- Włodzimierz Skiba (18/18) Jan 02 2006 Hi!
- Bertel Brander (11/30) Jan 03 2006 The C++ standard states:
-
Walter Bright
(3/4)
Jan 03 2006
Thanks for doing the research on this. It's nice to be right
.
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>