Aracılığıyla paylaş


Derleyici Hatası C2243

'type1' ile 'type2' arasında 'dönüştürme türü' dönüştürmesi var, ancak erişilemiyor

Erişim koruması (protected veya private) bir işaretçiden türetilmiş bir sınıfa, temel sınıfa yönelik bir işaretçiye dönüştürmeyi engelledi.

Aşağıdaki örnek C2243 oluşturur:

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

veya private erişimi olan protected temel sınıflara, türetilmiş sınıfın istemcileri tarafından erişilemez. Bu erişim denetimi düzeyleri, temel sınıfın istemciler için görünmez olması gereken bir uygulama ayrıntısı olduğunu belirtmek için kullanılır. Türetilmiş sınıfın istemcilerinin, türetilmiş bir sınıf işaretçisinin temel sınıf işaretçisine örtük dönüştürmesine erişimi olmasını istiyorsanız genel türetme kullanın.