ধরা যাক একটি কমপ্লেক্স নম্বর ক্লাস আছে যাতে real এবং imaginary অংশ রয়েছে। + অপারেটর ওভারলোড করে দুটি কমপ্লেক্স নম্বর যোগ করতে হবে। স্ট্রিং রিপ্রেজেন্টেশন রিটার্ন করার ফাংশনও থাকবে।
উদাহরণস্বরূপ, c1 = 8 - 5i, c2 = 2 + 3i হলে আউটপুট হবে 10 - 2i।
সমাধানের ধাপসমূহ
- Complex ক্লাসে real, imag প্রাইভেট মেম্বার রাখুন
- কনস্ট্রাক্টর, to_string() মেথড যোগ করুন
- operator+ ওভারলোড করুন: নতুন Complex ret-এ real এবং imag আলাদা আলাদা যোগ করুন
- ret রিটার্ন করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
#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)