Partager via


Avertissement du compilateur (niveau 3) C4243

La conversion 'type de conversion' existe de 'type1' en 'type2', mais est inaccessible

Un pointeur vers une classe dérivée est converti en pointeur vers une classe de base, mais la classe dérivée hérite de la classe de base avec un accès privé ou protégé.

L’exemple suivant génère l’erreur C4243 :

// C4243.cpp
// compile with: /W3
// C4243 expected
struct B {
   int f() {
      return 0;
   };
};

struct D : private B {};
struct E : public B {};

int main() {
   // Delete the following 2 lines to resolve.
   int (D::* d)() = (int(D::*)()) &B::f;
   d;

   int (E::* e)() = (int(E::*)()) &B::f; // OK
   e;
}