Sobes.tech
Junior — Middle

Czy mógłbyś wyjaśnić, co oznacza pojęcie funktor w programowaniu?

sobes.tech AI

Odpowiedź od AI

W programowaniu, szczególnie w C++, funktor to obiekt, który można wywołać jak funkcję. Zazwyczaj jest to klasa lub struktura z przeciążonym operatorem operator(). Pozwala to na używanie obiektów jak funkcji, co jest wygodne do przekazywania zachowań do algorytmów.

Przykład funktora w 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); // Wypisze 30
    return 0;
}

Funkcje te często są używane w bibliotece standardowej do konfigurowania zachowania algorytmów.