Megosztás a következőn keresztül:


C2804 fordítási hiba

A bináris operátor túl sok paraméterrel rendelkezik.

Megjegyzések

A bináris operátor túlterhelt tagfüggvénye több paraméterrel van deklarálva. A bináris operátor tagfüggvényének első operandusi paramétere, amelynek típusa az operátor beágyazási típusa, hallgatólagos.

Példák

Az alábbi példa létrehozza a C2804-et, és bemutatja, hogyan lehet kijavítani.

// C2804.cpp
// compile by using: cl /c /W4 C2804.cpp
class X {
public:
   X& operator+= (const X &left, const X &right);   // C2804
   X& operator+= (const X &right);   // OK - left operand implicitly *this
};

int main() {
   X x, y;
   x += y;   // equivalent to x.operator+=(y)
}

Az alábbi példa létrehozza a C2804-et, és bemutatja, hogyan lehet kijavítani.

// C2804_2.cpp
// compile with: /clr /c
ref struct Y {
   Y^ operator +(Y^ hY, int i);   // C2804
   static Y^ operator +(Y^ hY, int i);   // OK
   Y^ operator +(int i);   // OK
};