C/C++ Compiler (cl.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
C2640
                                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     Compiler error C2640
 
     cannot convert a pointer to member across a virtual inheritance
     path
 
     A pointer to a member was illegally cast to a pointer to a
     member of a base class that is declared as virtual.
 
     The following is an example of this error:
 
          class A
          {
          public:
             int a;
          };
 
          class B
          {
          public:
             int b;
          };
 
          class C : virtual public A, public B {};
 
          int C::* cpa = &C::a;         // error, C's A is virtual
          int C::* cpb = &C::b;         // OK
                                    -♦-