Functor หรือ Function Object ใน C++ คือ อินสแตนซ์ของคลาสที่สามารถเรียกใช้งานได้เหมือนฟังก์ชันทั่วไป โดยการโอเวอร์โหลดตัวดำเนินการ ()
พิจารณาฟังก์ชันที่รับอาร์กิวเมนต์หนึ่งตัว เราสามารถใช้เป็น Function Object เพื่อทำงานบนชุดข้อมูลได้
โค้ดตัวอย่าง
#include <iostream>
#include <algorithm>
using namespace std;
int square(int x) { return x * x; }
int main() {
int data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
transform(data, data+10, data, square);
for (int i = 0; i < 10; i++) cout << data[i] << endl;
}ผลลัพธ์
0 1 4 9 16 25 36 49 64 81