Giả sử chúng ta có một lớp số phức với phần thực và phần ảo. Chúng ta sẽ phải nạp chồng toán tử cộng (+) để thêm hai số phức. Chúng ta cũng phải xác định một hàm để trả về số phức theo cách biểu diễn thích hợp.
Vì vậy, nếu đầu vào giống như c1 =8 - 5i, c2 =2 + 3i, thì đầu ra sẽ là 10 - 2i.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
Ghi đè toán tử + và lấy một số phức c2 khác làm đối số
-
xác định một số phức được gọi là ret có số thực và số ảo bằng 0
-
real of ret:=own real + real of c2
-
hình ảnh của ret:=hình ảnh của riêng bạn + hình ảnh của c2
-
trả lại ret
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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(); }
Đầu vào
c1(8,-5), c2(2,3)
Đầu ra
(10 - 2i)