Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O operador binário 'operador' tem demasiados parâmetros
Observações
A função de membro do operador binário sobrecarregado é declarada com mais de um parâmetro. O primeiro parâmetro operando de uma função membro de um operador binário, cujo tipo é o tipo encapsulador do operador, está implícito.
Examples
O exemplo a seguir gera C2804 e mostra como corrigi-lo.
// 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)
}
O exemplo a seguir gera C2804 e mostra como corrigi-lo.
// 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
};