fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Complex {
  5. private:
  6. float real;
  7. float imag;
  8.  
  9. public:
  10. // Constructor
  11. Complex(float r = 0, float i = 0) {
  12. real = r;
  13. imag = i;
  14. }
  15.  
  16. // Overload +
  17. Complex operator + (const Complex& c) const {
  18. return Complex(real + c.real, imag + c.imag);
  19. }
  20.  
  21. // Overload -
  22. Complex operator - (const Complex& c) const {
  23. return Complex(real - c.real, imag - c.imag);
  24. }
  25.  
  26. // Overload *
  27. Complex operator * (const Complex& c) const {
  28. float r = (real * c.real) - (imag * c.imag);
  29. float i = (real * c.imag) + (imag * c.real);
  30. return Complex(r, i);
  31. }
  32.  
  33. // Display function
  34. void display() const {
  35. cout << real;
  36. if (imag >= 0)
  37. cout << " + " << imag << "i" << endl;
  38. else
  39. cout << " - " << -imag << "i" << endl;
  40. }
  41. };
  42.  
  43. int main() {
  44. Complex c1(3.0, 2.0); // First complex number: 3 + 2i
  45. Complex c2(1.5, 4.5); // Second complex number: 1.5 + 4.5i
  46.  
  47. Complex sum = c1 + c2;
  48. Complex diff = c1 - c2;
  49. Complex prod = c1 * c2;
  50.  
  51. cout << "First Complex Number: ";
  52. c1.display();
  53.  
  54. cout << "Second Complex Number: ";
  55. c2.display();
  56.  
  57. cout << "\nSum: ";
  58. sum.display();
  59.  
  60. cout << "Difference: ";
  61. diff.display();
  62.  
  63. cout << "Product: ";
  64. prod.display();
  65.  
  66. return 0;
  67. }
  68.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
First Complex Number: 3 + 2i
Second Complex Number: 1.5 + 4.5i

Sum: 4.5 + 6.5i
Difference: 1.5 - 2.5i
Product: -4.5 + 16.5i