FIX: Cannot Access Private Member from Friend Class (115854)



The information in this article applies to:

  • Microsoft Visual C++ for Windows, 16-bit edition 1.0
  • Microsoft Visual C++ for Windows, 16-bit edition 1.5
  • Microsoft Visual C++, 32-bit Editions 1.0

This article was previously published under Q115854

SYMPTOMS

When compiling the code below, the C/C++ compiler will incorrectly report the following error:
C2248: 'ptr' : cannot access private member declared in class 'X'

STATUS

Microsoft has confirmed this to be a bug in the products listed at the beginning of this article. This problem was corrected in Visual C++ version 2.0.

MORE INFORMATION

The following sample can be used to demonstrate this problem.

Sample Code

/* Compile options needed: none
*/ 

#include <iostream.h>
class C
{
   class X;
   class Y;

   class X
   {
      X* ptr;
      friend Y;
   };

   class Y
   {
      X* x;
    public:
      X* lookat() { return x->ptr; }           /* Error: C2248 */ 
   };
};
void main( void )
{
   cout << "PASSED" << endl;
}
				

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbbug kbCompiler kbCPPonly kbfix KB115854