Rewrite Program 3 where the following operators are overloaded: >>   <<   +   -   *   ==   != Also overload the preincrement and postincrement operators ++ which will change the value of the complex number to its cube.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter7: User-defined Simple Data Types, Namespaces, And The String Type
Section: Chapter Questions
Problem 1TF
icon
Related questions
Question

I'm working on c++ and I've been given the following instructions to modify a program:

Rewrite Program 3 where the following operators are overloaded:

>>   <<   +   -   *   ==   !=

Also overload the preincrement and postincrement operators ++ which will change the value of the complex number to its cube.

I really only need help understanding the last two operators and the pre/postincrement.

Here is the program I already have:

#include <iostream>
using namespace std;

//This program uses a class to work with complex numbers

// create complex number class
class ComplexNum
{
   //private variables
private:
   float realNum;
   float imaginaryNum;

   //public section
public:
   //default constructor
   ComplexNum(float r = 0, float i = 0) :realNum(r), imaginaryNum(i) {};
   //sets the complex numbers
   void setComplex(void)
   {
       cout << "Enter the real part: ";
       cin >> this->realNum;
       cout << "Enter the imaginary part: ";
       cin >> this->imaginaryNum;
   }
   //adds the complex numbers
   ComplexNum operator +(const ComplexNum c)
   {
       ComplexNum complex;
       complex.realNum = realNum + c.realNum;
       complex.imaginaryNum = imaginaryNum + c.imaginaryNum;
       return complex;
   }
   //subract the complex numbers
   ComplexNum operator -(const ComplexNum& c)
   {
       ComplexNum complex;
       complex.realNum = this->realNum - c.realNum;
       complex.imaginaryNum = this->imaginaryNum - c.imaginaryNum;
       return complex;
   }
   //multiply the numbers
   ComplexNum multiply(const ComplexNum& c)
   {
       ComplexNum complex;
       complex.realNum = (this->realNum * c.realNum) - (this->imaginaryNum * c.imaginaryNum);
       complex.imaginaryNum = (this->realNum * c.imaginaryNum) + (this->imaginaryNum * c.realNum);
       return complex;
   }
   //print numbers
   void printComplexNum(void)
   {
       if (this->imaginaryNum >= 0)
           cout << this->realNum << " + " << this->imaginaryNum << "i" << endl;
       else
           cout << this->realNum << " " << this->imaginaryNum << "i" << endl;
   }
   //cube the numbers
   void cube()
   {
       float ogreal = this->realNum;
       float ogimaginary = this->imaginaryNum;
       float temp1 = ogreal * ogreal - ogimaginary * ogimaginary;
       float temp2 = 2 * ogimaginary * ogreal;
       this->realNum = temp1 * ogreal - temp2 * ogimaginary;
       this->imaginaryNum = (3 * (ogreal * ogreal) * ogimaginary) - (ogimaginary * ogimaginary * ogimaginary);
   }
};
  
//main
int main()
{
   // create complex number objects
   ComplexNum first, second, sum, difference, product;
   //
   cout << "First complex number " << endl;
   first.setComplex();
   cout << "Second complex number " << endl;
   second.setComplex();
   //Add
   cout << "Sum of a and b: " << endl;
   sum = first + second;
   sum.printComplexNum();
   //Subtract
   cout << "Difference of a and b : " << endl;
   difference = first - second;
   difference.printComplexNum();
   //Multiply
   cout << "Product of a and b : " << endl;
   product = first.multiply(second);
   product.printComplexNum();
   //Cube
   cout << "Cube of a: " << endl;
   first.cube();
   first.printComplexNum();
   /*change the complex number to its cube*/
   cout << "Cube of b: " << endl;
   second.cube();
   second.printComplexNum();
   return 0;
}

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 7 images

Blurred answer
Knowledge Booster
Datatypes
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning