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

C++-এ স্ট্রিম ইনসার্শন (<<) এবং এক্সট্র্যাকশন (>>) অপারেটর ওভারলোডিং


C++ বিল্ট-ইন ডেটা টাইপ ইনপুট এবং আউটপুট করতে স্ট্রিম এক্সট্র্যাকশন অপারেটর >> এবং স্ট্রিম ইনসার্শন অপারেটর << ব্যবহার করে। স্ট্রিম ইনসার্শন এবং স্ট্রিম এক্সট্র্যাকশন অপারেটরগুলো ইউজার-ডিফাইনড টাইপের মতো অবজেক্টের জন্যও ওভারলোড করা যায় ইনপুট-আউটপুট করার জন্য।

এখানে গুরুত্বপূর্ণ হলো অপারেটর ওভারলোডিং ফাংশনকে ক্লাসের ফ্রেন্ড (friend) বানানো, কারণ এটি অবজেক্ট তৈরি ছাড়াই কল হয়।

নিচের উদাহরণে এক্সট্র্যাকশন অপারেটর >> এবং ইনসার্শন অপারেটর << কীভাবে ওভারলোড করা হয় তা ব্যাখ্যা করা হলো।

উদাহরণ কোড

#include <iostream>
using namespace std;

class Distance {
private:
    int feet;
    int inches;
public:
    Distance() {
        feet = 0;
        inches = 0;
    }
    Distance(int f, int i) {
        feet = f;
        inches = i;
    }
    friend ostream &operator<<(ostream &output, const Distance &D) {
        output << "F : " << D.feet << " I : " << D.inches;
        return output;
    }
    friend istream &operator>>(istream &input, Distance &D) {
        input >> D.feet >> D.inches;
        return input;
    }
};

int main() {
    Distance D1(11, 10), D2(5, 11), D3;
    cout << "অবজেক্টের মান দিন: " << endl;
    cin >> D3;
    cout << "First Distance : " << D1 << endl;
    cout << "Second Distance : " << D2 << endl;
    cout << "Third Distance : " << D3 << endl;
    return 0;
}

আউটপুট

Enter the value of object: 70 10
First Distance : F : 11 I : 10
Second Distance : F : 5 I : 11
Third Distance : F : 70 I : 10
  1. C++ রিলেশনাল এবং ইকোয়ালিটি অপারেটর

  2. C++-এ রিলেশনাল এবং কমপারিজন অপারেটর

  3. C++-এ ইনক্রিমেন্ট ++ এবং ডিক্রিমেন্ট -- অপারেটর

  4. C++-এ অপারেটর ওভারলোডিং-এর বেসিক রুল এবং ইডিয়ম