मान लीजिए हमारे पास एक सम्मिश्र संख्या क्लास है जिसमें वास्तविक और काल्पनिक भाग हैं। हमें दो सम्मिश्र संख्याओं को जोड़ने के लिए जोड़ (+) ऑपरेटर को ओवरलोड करना होगा। हमें सम्मिश्र संख्या को उचित प्रतिनिधित्व में लौटाने के लिए एक फंक्शन भी परिभाषित करना होगा।
उदाहरण के लिए, यदि इनपुट c1 = 8 - 5i, c2 = 2 + 3i है, तो आउटपुट 10 - 2i होगा।
समाधान दृष्टिकोण
इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- + ऑपरेटर को ओवरलोड करें और दूसरे सम्मिश्र संख्या c2 को तर्क के रूप में लें
- ret नामक एक सम्मिश्र संख्या परिभाषित करें जिसका वास्तविक और काल्पनिक भाग 0 हो
- ret का वास्तविक भाग := अपना वास्तविक भाग + c2 का वास्तविक भाग
- ret का काल्पनिक भाग := अपना काल्पनिक भाग + c2 का काल्पनिक भाग
- 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)