Partilhar via


Erro do compilador C2243

A conversão do «tipo de conversão» de «tipo1» para «tipo2» existe, mas é inacessível

Observações

A proteção de acesso (protected ou private) impediu a conversão de um ponteiro para uma classe derivada para um ponteiro para a classe base.

Example

O exemplo a seguir gera C2243:

// C2243.cpp
// compile with: /c
class B {};
class D : private B {};
class E : public B {};

D d;
B *p = &d;   // C2243

E e;
B *p2 = &e;

Classes base com protected ou private acesso não são acessíveis para clientes da classe derivada. Esses níveis de controle de acesso são usados para indicar que a classe base é um detalhe de implementação que deve ser invisível para os clientes. Use a derivação pública se desejar que os clientes da classe derivada tenham acesso à conversão implícita de um ponteiro de classe derivada para um ponteiro para a classe base.