Aracılığıyla paylaş


Derleyici Hatası C3767

'function' aday işlevleri erişilebilir değil

Bir sınıfta tanımlanan bir friend işlevinin genel ad alanı kapsamında tanımlanmış ve bildirilmiştir gibi ele alınması gerekmez. Ancak bağımsız değişkene bağımlı arama tarafından bulunabilir.

C3767 hataya neden olabilir: Yerel türler artık /clr derlemesinde varsayılan olarak özeldir; daha fazla bilgi için bkz. Tür görünürlüğü.

Örnek

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

// 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();
};

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

// 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();
   }
};