Sobes.tech
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