Поделиться через


Ошибка компилятора C3365

оператор "оператор": отличающиеся операнды типов "тип1" и "тип2"

Попытка компоновки делегатов различного типа. Дополнительные сведения о делегатах см. в статье "Определение и использование делегатов" (C++/CLI).

Пример

Следующий пример приводит к возникновению ошибки C3365:

// C3365.cpp
// compile with: /clr
delegate void D1();
delegate void D2(int);

ref class R {
public:
   void f(){}
   void g(int){}
};

int main() {
   D1^ d1 = gcnew D1(gcnew R, &R::f);
   D2^ d2 = gcnew D2(gcnew R, &R::g);
   D1^ d3 = gcnew D1(gcnew R, &R::f);

   d1 += d2;   // C3365
   d1 += d3;   // OK
   d1();
}