www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

c++ - Private member accessibility from private class

↑ ↓ ← "Włodzimierz Skiba" <abx abx.art.pl> writes:
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
↑ ↓ Bertel Brander <bertel post4.tele.dk> writes:
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
↑ ↓ → "Walter Bright" <newshound digitalmars.com> writes:
"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