다음을 통해 공유


컴파일러 오류 C3767

'function' 후보 함수에 액세스할 수 없음

클래스에 정의된 friend 함수는 전역 네임스페이스 범위에서 정의되고 선언된 것처럼 취급되지 않아야 합니다. 그러나 인수 종속 조회를 통해 찾을 수 있습니다.

C3767은 호환성이 손상되는 변경으로 인해 발생할 수도 있습니다. 네이티브 형식은 기본적으로 /clr 컴파일에서 비공개로 설정됩니다. 자세한 내용은 형식 표시 유형을 참조하세요.

예시

다음 샘플에서는 C3767을 생성합니다.

// C3767a.cpp
// compile with: /clr
using namespace System;
public delegate void TestDel();

public ref class MyClass {
public:
   static event TestDel^ MyClass_Event;
};

public ref class MyClass2 : public MyClass {
public:
   void Test() {
      MyClass^ patient = gcnew MyClass;
      patient->MyClass_Event();
    }
};

int main() {
   MyClass^ x = gcnew MyClass;
   x->MyClass_Event();   // C3767

   // OK
   MyClass2^ y = gcnew MyClass2();
   y->Test();
};

다음 샘플에서는 C3767을 생성합니다.

// C3767c.cpp
// compile with: /clr /c

ref class Base  {
protected:
   void Method() {
      System::Console::WriteLine("protected");
   }
};

ref class Der : public Base {
   void Method() {
      ((Base^)this)->Method();   // C3767
      // try the following line instead
      // Base::Method();
   }
};