কম্পিউটার

C++ ওভারলোড নিষ্কাশন অপারেটর প্রোগ্রাম


ধরুন আমাদের একটি Person ক্লাস আছে যার দুটি বৈশিষ্ট্য first_name এবং last_name। এটিতে যথাক্রমে প্রথম নাম এবং শেষ নাম পুনরুদ্ধার বা সেট করার জন্য get_first_name() এবং get_last_name() নামে দুটি পদ্ধতি রয়েছে। cout স্টেটমেন্ট ব্যবহার করে প্রথম নাম এবং শেষ নাম প্রিন্ট করার জন্য আমাদের এক্সট্রাকশন অপারেটর (<<) ওভারলোড করতে হবে।

সুতরাং, যদি ইনপুটটি প্রথম নাম এবং পদবি ("সুমিত", "রে") সহ ব্যক্তির বস্তুর মতো হয়, তবে আউটপুট হবে প্রথম নাম − সুমিত, শেষ নাম − রে৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ওভারলোড নিষ্কাশন অপারেটর, এটি ক্লাসের বাইরে সংজ্ঞায়িত করা উচিত

  • রিটার্ন টাইপ হবে একটি ওস্ট্রিম রেফারেন্স

  • ইনপুট প্যারামিটার হল একটি ওস্ট্রিম রেফারেন্স ভেরিয়েবল ওএস এবং অবজেক্ট রেফারেন্স ভেরিয়েবল

  • 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.

  1. C++ এ ওভারলোডিং স্ট্রীম সন্নিবেশ (<<) এবং নিষ্কাশন (>>) অপারেটর

  2. C++ এ ডিলিট() অপারেটর

  3. একটি C++ শ্রেণীর নামের পরে একটি সেমিকোলন কী করে?

  4. C++ এ ওভারলোড ইউনারি মাইনাস অপারেটর?