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;
}