Middle
Como sobrecarregar o operador de incremento postfix e prefixo em C++?
sobes.tech IA
Resposta da IA
Os operadores de incremento prefixado e postfixado ++ em C++ são sobrecarregados usando duas assinaturas diferentes de funções-membro:
-
Incremento prefixado: Retorna uma referência ao objeto atual (
*this) após sua modificação.ClassName& operator++() { // Lógica do incremento prefixado // Alterar o estado do objeto return *this; // Retorna referência ao objeto alterado } -
Incremento postfixado: Retorna uma cópia do objeto antes de sua alteração. Difere por ter um parâmetro fictício
int.ClassName operator++(int) { ClassName temp = *this; // Salvar o estado atual // Lógica do incremento postfixado // Alterar o estado do objeto return temp; // Retorna a cópia salva }
| Tipo de incremento | Assinatura da função | Valor retornado | Parâmetros |
|---|---|---|---|
| Prefixo | ClassName& operator++() |
Referência ao objeto modificado | Nenhum |
| Postfixo | ClassName operator++(int) |
Cópia do objeto antes da alteração | Parâmetro fictício int |