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

โปรแกรม C++ สำหรับโอเวอร์โหลดโอเปอเรเตอร์บวกเพื่อเพิ่มจำนวนเชิงซ้อนสองตัว


สมมติว่าเรามีคลาสจำนวนเชิงซ้อนที่มีส่วนจริงและส่วนจินตภาพ เราจะต้องโอเวอร์โหลดตัวดำเนินการบวก (+) เพื่อเพิ่มจำนวนเชิงซ้อนสองตัว นอกจากนี้เรายังต้องกำหนดฟังก์ชันเพื่อคืนค่าจำนวนเชิงซ้อนในรูปแบบที่เหมาะสม

ดังนั้น หากอินพุตเป็น c1 =8 - 5i, c2 =2 + 3i เอาต์พุตจะเป็น 10 - 2i

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • โอเวอร์โหลดตัวดำเนินการ + และใช้จำนวนเชิงซ้อน c2 อีกตัวเป็นอาร์กิวเมนต์

  • กำหนดจำนวนเชิงซ้อนที่เรียกว่า ret ซึ่งจำนวนจริงและอิมเมจเป็น 0

  • ของจริงของ ret :=ของจริง + ของจริงของ c2

  • imag of ret :=own imag + imag ของ c2

  • รีเทิร์น

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <iostream>
#include <sstream>
#include <cmath>
using namespace std;
class Complex {
    private:
        int real, imag;
    public:
    Complex(){
        real = imag = 0;    
    }
    Complex (int r, int i){
        real = r;
        imag = i;
    }
    string to_string(){
        stringstream ss;
        if(imag >= 0)
            ss << "(" << real << " + " << imag << "i)";
        else
            ss << "(" << real << " - " << abs(imag) << "i)";
        return ss.str();
    }
    Complex operator+(Complex c2){
        Complex ret;
        ret.real = real + c2.real;
        ret.imag = imag + c2.imag;
        return ret;
    }
};
int main(){
    Complex c1(8,-5), c2(2,3);
    Complex res = c1 + c2;
    cout << res.to_string();
}

อินพุต

c1(8,-5), c2(2,3)

ผลลัพธ์

(10 - 2i)