ধরা যাক একটি Person ক্লাস আছে যাতে first_name এবং last_name দুটি অ্যাট্রিবিউট রয়েছে। এছাড়া get_first_name() এবং get_last_name() মেথড রয়েছে। আমাদের এক্সট্রাকশন অপারেটর (<<) ওভারলোড করতে হবে যাতে cout দিয়ে অবজেক্ট প্রিন্ট করা যায়।
উদাহরণস্বরূপ, Person অবজেক্ট ("Sumit", "Ray") হলে আউটপুট হবে "First name - Sumit, Last name - Ray"।
সমাধানের ধাপসমূহ
- এক্সট্রাকশন অপারেটর ক্লাসের বাইরে সংজ্ঞায়িত করতে হবে
- রিটার্ন টাইপ হবে ostream reference
- প্যারামিটার: ostream reference os, Person reference p
- os দিয়ে অবজেক্টের অংশগুলোর প্রিন্ট করুন
- os রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
#include <iostream> using namespace std; class Person { private: string f_name; string l_name; public: Person(string first_name, string last_name) : f_name(first_name), l_name(last_name) {} string& get_first_name() { return f_name; } string& get_last_name() { return l_name; } }; ostream& operator<<(ostream& os, Person& p) { os << "First name: " << p.get_first_name() << ", Last name: " << p.get_last_name(); return os; } int main(){ Person p("Sumit", "Ray"); cout << p << ", he is our member."; } ইনপুট
p("Sumit", "Ray")আউটপুট
First name: Sumit, Last name: Ray, he is our member.