c++ - another access problem:
-
Arjan Knepper
(31/31)
Aug 09 2004
----------------------------------------
--------------------------... - Heinz Saathoff (6/44) Aug 12 2004 Yes, this should be allowed. First I wasn't sure, so I asked this in the...
- Arjan Knepper (4/55) Aug 12 2004 Thanks!
----------------------------------------<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
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
Heinz Saathoff wrote:Hello Arjan, Arjan Knepper wrote...Thanks! Than now this email is a compiler bug report. Arjan#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