다음을 통해 공유


컴파일러 경고(수준 3) C4243

'conversion type' 변환은 'type1'에서 'type2'로 존재하지만 액세스할 수 없습니다.

파생 클래스에 대한 포인터는 기본 클래스에 대한 포인터로 변환되지만 파생 클래스는 프라이빗 또는 보호된 액세스 권한이 있는 기본 클래스를 상속합니다.

다음 샘플에서는 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;
}