কম্পিউটার টিউটোরিয়াল

C++-এ ফাংশন অবজেক্ট (Functors in C++)

ফাংশন অবজেক্ট (Functor) কী?

ফাংশন অবজেক্ট বা ফাংশন্টার (Functor) হলো এমন একটি ক্লাস যার অবজেক্টকে ফাংশনের মতো কল করা যায়। এর জন্য operator() ওভারলোড করা হয়। এটি স্টেটফুল (stateful) হতে পারে, অর্থাৎ ডেটা ধারণ করতে পারে।

উদাহরণ: স্কোয়ার ফাংশন্টার

#include <iostream>
#include <algorithm>
using namespace std;

struct Square {
    int operator()(int x) const { return x * x; }
};

int main() {
    int data[10] = {0,1,2,3,4,5,6,7,8,9};
    Square sq;
    transform(data, data+10, data, sq); // sq ফাংশন্টার হিসেবে ব্যবহার
    for (int x : data) cout << x << " ";
    return 0;
}

আউটপুট

0 1 4 9 16 25 36 49 64 81

লাভ: সাধারণ ফাংশন পয়েন্টারের চেয়ে দ্রুত (ইনলাইনিং সম্ভব), স্টেট ধারণ করতে পারে, STL অ্যালগরিদমের সাথে স্মুথলি কাজ করে।

  1. C++-এ log() ফাংশন

  2. C++-এ ফাংশনে অ্যারে পাস করা: পয়েন্টার ও রেফারেন্স

  3. C++-এ ২D অ্যারে ফাংশনে পাস করা

  4. C++-এ অ্যারে ফাংশনে পাস করা (Passing Array to Function)