다음을 통해 공유


컴파일러 오류 C2249

'member': 가상 기본 'class'에 선언된 멤버에 액세스할 수 있는 경로가 없습니다.

member 클래스는 게시 virtual 되지 않은 기본 클래스 또는 구조체에서 상속됩니다.

예제

다음 샘플에서는 C2249를 생성합니다.

// C2249.cpp
class A {
private:
   void privFunc( void ) {};
public:
   void pubFunc( void ) {};
};

class B : virtual public A {} b;

int main() {
   b.privFunc();    // C2249, private member of A
   b.pubFunc();    // OK
}

C++ 표준 라이브러리에서 다른 스트림으로 스트림을 할당하려는 경우에도 C2249가 발생할 수 있습니다. 다음 샘플에서는 C2249를 생성합니다.

// C2249_2.cpp
#include <iostream>
using namespace std;
int main() {
   cout = cerr;   // C2249
   #define cout cerr;   // OK
}