কম্পিউটার

অপারেটর ওভারলোডিং ব্যবহার করে জটিল সংখ্যা বিয়োগ করার জন্য C++ প্রোগ্রাম


অপারেটর ওভারলোডিং C++-এ থাকা বেশিরভাগ অন্তর্নির্মিত অপারেটরের সাথে করা যেতে পারে। ওভারলোড করা অপারেটরগুলি হল কীওয়ার্ড অপারেটর সহ ফাংশন যা সংজ্ঞায়িত অপারেটর চিহ্ন দ্বারা অনুসরণ করা হয়। ওভারলোড করা অপারেটরগুলির একটি রিটার্ন টাইপ এবং যেকোন ফাংশনের মতো একটি প্যারামিটার তালিকা রয়েছে৷

একটি প্রোগ্রাম যা অপারেটর ওভারলোডিং ব্যবহার করে জটিল সংখ্যা বিয়োগ করে তা হল নিম্নরূপ −

উদাহরণ

#include<iostream>
using namespace std;
class ComplexNum {
   private:
   int real, imag;
   public:
   ComplexNum(int r = 0, int i =0) {
      real = r;
      imag = i;
   }
   ComplexNum operator - (ComplexNum const &obj1) {
      ComplexNum obj2;
      obj2.real = real - obj1.real;
      obj2.imag = imag - obj1.imag;
      return obj2;
   }
   void print() {
      if(imag>=0)
      cout << real << " + i" << imag <<endl;
      else
      cout << real << " + i(" << imag <<")"<<endl;
   }
};
int main() {
   ComplexNum comp1(15, -2), comp2(5, 10);
   cout<<"The two comple numbers are:"<<endl;
   comp1.print();
   comp2.print();
   cout<<"The result of the subtraction is: ";
   ComplexNum comp3 = comp1 - comp2;
   comp3.print();
}

আউটপুট

The two comple numbers are:
15 + i(-2)
5 + i10
The result of the subtraction is: 10 + i(-12)

উপরের প্রোগ্রামে, ComplexNum ক্লাসটি সংজ্ঞায়িত করা হয়েছে যাতে একটি জটিল সংখ্যার বাস্তব এবং কাল্পনিক অংশের জন্য যথাক্রমে বাস্তব এবং চিত্রের ভেরিয়েবল রয়েছে। কনস্ট্রাক্টর কমপ্লেক্সনাম বাস্তব এবং চিত্রের মানগুলি শুরু করতে ব্যবহৃত হয়। এটিতে 0 হিসাবে ডিফল্ট মানও রয়েছে। এটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে −

class ComplexNum {
   private:
   int real, imag;
   public:
   ComplexNum(int r = 0, int i =0) {
      real = r;
      imag = i;
   }
}

যে ফাংশনটি ওভারলোড করা অপারেটর সেটির পরে কীওয়ার্ড অপারেটর থাকে - কারণ এটি অপারেটর ওভারলোড হচ্ছে। ফাংশন দুটি জটিল সংখ্যা বিয়োগ করে এবং ফলাফলটি অবজেক্ট 2-এ সংরক্ষণ করা হয়। তারপর এই মানটি ComplexNum অবজেক্ট comp3 এ ফেরত দেওয়া হয়।

নিম্নলিখিত কোড স্নিপেট এটি প্রদর্শন করে −

ComplexNum operator - (ComplexNum const &obj1) {
   ComplexNum obj2;
   obj2.real = real - obj1.real;
   obj2.imag = imag - obj1.imag;
   return obj2;
}

print() ফাংশন জটিল সংখ্যার বাস্তব এবং কাল্পনিক অংশ প্রিন্ট করে। এটি নিম্নরূপ দেখানো হয়েছে৷

void print() {
   if(imag>=0)
   cout << real << " + i" << imag <<endl;
   else
   cout << real << " + i(" << imag <<")"<<endl;
}

  1. রিকার্সন ব্যবহার করে একটি সংখ্যার ফ্যাক্টরিয়াল খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. পুনরাবৃত্তি ব্যবহার করে একটি সংখ্যার ফ্যাক্টরিয়াল খুঁজে বের করতে C++ প্রোগ্রাম

  3. পুনরাবৃত্তি ব্যবহার করে একটি সংখ্যার ফ্যাক্টরিয়াল গণনা করার জন্য C++ প্রোগ্রাম

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