Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม 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 ถูกกำหนดซึ่งมีตัวแปรจำนวนจริงและอิมเมจสำหรับส่วนจริงและส่วนจินตภาพของจำนวนเชิงซ้อนตามลำดับ คอนสตรัคเตอร์ ComplexNum ใช้เพื่อเริ่มต้นค่าของจริงและอิมเมจ นอกจากนี้ยังมีค่าเริ่มต้นเป็น 0 ซึ่งแสดงในข้อมูลโค้ดต่อไปนี้ -

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

ฟังก์ชันที่เป็นโอเปอเรเตอร์โอเวอร์โหลดประกอบด้วยโอเปอเรเตอร์คีย์เวิร์ดตามด้วย - เนื่องจากเป็นโอเปอเรเตอร์ที่โอเวอร์โหลด ฟังก์ชันลบจำนวนเชิงซ้อนสองตัวและผลลัพธ์จะถูกเก็บไว้ในวัตถุ obj2 จากนั้นค่านี้จะถูกส่งกลับไปยังอ็อบเจ็กต์ 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;
}