مفهوم functor چیست؟

یکی از امکاناتی که C++ به ما می ده function object یا functor ها هستند. بدین معنا که ما به جای تعریف توابع به صورت C می تونیم توابع را به فرم شی گرا تعریف کنیم.!!!! خوب یک functor در واقع یک کلاس یا strcut هست که فقط یک تابع داره و اون هم عملگر () هست.

Myfunctor
{
            void operator()(){//do something;}
}

البته خوب شما می تونید متغیر خصوصی هم براش بگیرید و بدین ترتیب توابعی داشته باشید که می تونن state حفظ کنن!!!!!!