Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε τι εννοείται με τον όρο functor στον προγραμματισμό;

sobes.tech AI

Απάντηση από AI

Στον προγραμματισμό, ειδικά στη C++, ένας functor είναι ένα αντικείμενο που μπορεί να κληθεί ως μια συνάρτηση. Συνήθως, είναι μια κλάση ή δομή με έναν υπερφορτωμένο τελεστή operator(). Αυτό επιτρέπει τη χρήση αντικειμένων ως συναρτήσεις, κάτι που είναι βολικό για την παράδοση συμπεριφορών σε αλγόριθμους.

Παράδειγμα functor σε 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); // Θα εμφανίσει 30
    return 0;
}

Οι functors χρησιμοποιούνται συχνά στη βιβλιοθήκη standard για την προσαρμογή της συμπεριφοράς των αλγορίθμων.