Article: Q115854
Product(s): Microsoft C Compiler
Version(s): 1.0,1.5
Operating System(s):
Keyword(s): kbCompiler kbCPPonly kbVCkbbuglist kbfixlist
Last Modified: 12-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- The C/C++ Compiler (CL.EXE), included with:
- Microsoft Visual C++ for Windows, 16-bit edition, versions 1.0, 1.5
- Microsoft Visual C++, 32-bit Editions, version 1.0
-------------------------------------------------------------------------------
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;
}
Additional query words: 1.00 1.50 7.00 8.00 8.00c
======================================================================
Keywords : kbCompiler kbCPPonly kbVC kbbuglist kbfixlist
Technology : kbVCsearch kbAudDeveloper kbCVCComp
Version : :1.0,1.5
Issue type : kbbug
Solution Type : kbfix
=============================================================================