Sobes.tech
Junior — Middle

Poderia explicar o que se entende por functor na programação?

sobes.tech IA

Resposta da IA

Na programação, especialmente em C++, um functor é um objeto que pode ser chamado como uma função. Normalmente, é uma classe ou estrutura com um operador operator() sobrecarregado. Isso permite usar objetos como funções, o que é conveniente para passar comportamentos para algoritmos.

Exemplo de functor em C++:

#include <iostream>

struct MultiplyBy {
    int factor;
    MultiplyBy(int f) : factor(f) {}
    int operator()(int x) const {
        return x * factor;
    }
};

int main() {
    MultiplyBy multiplyBy3(3);
    std::cout << multiplyBy3(10); // Vai imprimir 30
    return 0;
}

Os functors são frequentemente usados na biblioteca padrão para configurar o comportamento dos algoritmos.