## BUG: Erroneous C2352 Generated When Using typedef'd Base Class

Q115528

    7.00   | 1.00 1.50
    MS-DOS | WINDOWS
    kbtool kbbuglist

    ----------------------------------------------------------------------
    The information in this article applies to:

     - The Microsoft C/C++ Compiler (CL.EXE), included with:

        - Microsoft C/C++ for MS-DOS, version 7.0
        - Microsoft Visual C++ for Windows, versions 1.0 and 1.5
    ----------------------------------------------------------------------

    SYMPTOMS
    ========

    When compiling code using a typedef'd base class, as shown in the sample
    code below, the compiler incorrectly generates the following error:

       error C2352: 'Base::Print' : illegal call of nonstatic member function

    When compiling the same code under C/C++, version 7.0, the following
    error message is generated instead of the C2352 message:

       error C2653: 'Superclass' : is not a class name

    STATUS
    ======

    Microsoft has confirmed this to be a bug with the C/C++ compiler,
    versions 7.0, 8.0, and 8.0c. We are researching the problem and will
    post new information here in the Microsoft Knowledge Base as soon as
    it becomes available.

    This is not a problem in the 32-bit compilers.

    Sample Code
    -----------

    /* Compile options needed: /c
    */
          #include <iostream.h>

          class Base
          {
             int i;

          public:

             Base() : i(123) {}
             virtual void Print() { cout << i << '\n'; }
          };

          class Derivd : public Base
          {
             double d;
             typedef Base Superclass;

          public:

             Derivd() : d(3.14159) {}
             virtual void Print1() { Base::Print(); cout << d << '\n'; }
             virtual void Print2() { Superclass::Print(); cout << d << '\n'; }
          };

          main()
          {
             Derivd test;
             test.Print();

             return 0;
          }

    Additional reference words: 1.00 1.50 7.00 8.00 8.00c
    KBCategory: kbtool kbbuglist
    KBSubcategory: CPPIss

Keywords : kb16bitonly
Issue type : kbbug
Technology : kbVCsearch kbAudDeveloper kbCVCComp

Last Reviewed: May 5, 2001 © 2001 Microsoft Corporation. All rights reserved. Terms of Use.