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++ - another access problem:

↑ ↓ ← Arjan Knepper <arjan ask.me> writes:
----------------------------------------<snip>---------------------------
#include <stdio.h>


class  ThePrivateBase
{
    public :
       ThePrivateBase () {}
       ThePrivateBase ( void *_a ) {}
       ThePrivateBase ( const ThePrivateBase &_a );
};


class  Derived : private ThePrivateBase
{
    public :
       Derived () {}
       Derived ( int *_a ) : ThePrivateBase ( _a ) {}
       Derived ( const ThePrivateBase &_q ) : ThePrivateBase ( _q ) {}
#if defined _HUH_
       Derived ( const Derived &_q ) : ThePrivateBase ( _q ) {}
#endif
};



int  main ()
{
    Derived  d;

    return ( 0 );
}

----------------------------------------<snip>---------------------------
Compiling with -D_HUH_ gives an error:
inh.cpp(19) : Error: member 'ThePrivateBase' of class 'Derived' is not 
accessible

According to my (limited) knowledge it should be accessable. Or am I wrong?

Thanks,
Arjan
Aug 09 2004
↑ ↓ Heinz Saathoff <hsaat despammed.com> writes:
Hello Arjan,

Arjan Knepper wrote...
 #include <stdio.h>
 
 
 class  ThePrivateBase
 {
     public :
        ThePrivateBase () {}
        ThePrivateBase ( void *_a ) {}
        ThePrivateBase ( const ThePrivateBase &_a );
 };
 
 
 class  Derived : private ThePrivateBase
 {
     public :
        Derived () {}
        Derived ( int *_a ) : ThePrivateBase ( _a ) {}
        Derived ( const ThePrivateBase &_q ) : ThePrivateBase ( _q ) {}
 #if defined _HUH_
        Derived ( const Derived &_q ) : ThePrivateBase ( _q ) {}
 #endif
 };
 
 
 
 int  main ()
 {
     Derived  d;
 
     return ( 0 );
 }
 
 ----------------------------------------<snip>---------------------------
 Compiling with -D_HUH_ gives an error:
 inh.cpp(19) : Error: member 'ThePrivateBase' of class 'Derived' is not 
 accessible
 
 According to my (limited) knowledge it should be accessable. Or am I wrong?

Yes, this should be allowed. First I wasn't sure, so I asked this in the german C++ newsgroup and got a confirmation that the _HUH_ part is valid. I also checked with PC-Lint which also accepts this. - Heinz
Aug 12 2004
↑ ↓ → Arjan Knepper <arjan ask.me> writes:
Heinz Saathoff wrote:
 Hello Arjan,
 
 Arjan Knepper wrote...
 
#include <stdio.h>


class  ThePrivateBase
{
    public :
       ThePrivateBase () {}
       ThePrivateBase ( void *_a ) {}
       ThePrivateBase ( const ThePrivateBase &_a );
};


class  Derived : private ThePrivateBase
{
    public :
       Derived () {}
       Derived ( int *_a ) : ThePrivateBase ( _a ) {}
       Derived ( const ThePrivateBase &_q ) : ThePrivateBase ( _q ) {}
#if defined _HUH_
       Derived ( const Derived &_q ) : ThePrivateBase ( _q ) {}
#endif
};



int  main ()
{
    Derived  d;

    return ( 0 );
}

----------------------------------------<snip>---------------------------
Compiling with -D_HUH_ gives an error:
inh.cpp(19) : Error: member 'ThePrivateBase' of class 'Derived' is not 
accessible

According to my (limited) knowledge it should be accessable. Or am I wrong?

Yes, this should be allowed. First I wasn't sure, so I asked this in the german C++ newsgroup and got a confirmation that the _HUH_ part is valid. I also checked with PC-Lint which also accepts this. - Heinz

Thanks! Than now this email is a compiler bug report. Arjan
Aug 12 2004