Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

So I have create the implementation portion of the complex class described in th

ID: 3772427 • Letter: S

Question

So I have create the implementation portion of the complex class described in the complex definition file "complex.h"

What I have thus far is include below class, the ones I can't I figure out are highlighted could you please correct?

#ifndef COMPLEX_H
#define COMPLEX_H


class complex {

public:
complex();
complex(double a);
complex(double a,double b);
complex(int a,int b);
void print() const;
void set(double a=0,double b=0);
void set(int a=0,int b=0);
double getReal() const;
double getImag() const;
void get(double&,double&) const;

complex operator+ (double&);
complex operator+ (complex&);
complex operator+= (complex&);
complex operator+= (int&);
complex operator++ (int);
complex operator++ ();
complex operator- (double&);
complex operator- (complex&);
complex operator-= (complex&);
complex operator-= (double&);
complex operator-- (int);
complex operator-- ();
complex operator* (complex&);
complex operator* (double&);
complex operator*= (complex&);
complex operator*= (double&);
complex operator/ (complex&);
complex operator/= (complex&);
complex operator/= (double);
complex operator/ (double);
void operator= (const complex&);
bool operator== (complex&);
bool operator!=(complex &c);
friend std::istream &operator>> (std::istream &in, complex& c);
friend std::ostream &operator<<(std::ostream &out, complex c);

complex conj() const;
double norm() const;
double modulus() const;

private:
double real;
double imag;
};

#endif // COMPLEX_H

#include
#include "complex.h"
#include


using namespace std;


complex::complex(){
real = 0;
imag = 0;
}

complex::complex(double a){
real=a;
imag = 0;
}

complex::complex (double a, double b){
real=a;
imag=b;
}

complex::complex (int a, int b){
real=a;
imag=b;
}

complex complex::operator+ (double& a){
return complex(real + a, imag);
}

complex complex::operator+ (complex& a){
return complex(real + a.real, imag + a.imag);
}
complex complex::operator+= (complex& a){
return complex (real+=a.real, imag+=a.imag);
}

complex complex::operator+= (int& a){
return complex (real+=a, imag);
}
complex complex::operator++ (int a){
return complex (real, imag);
}

complex complex::operator++ ( ){
complex a=complex(real, imag);
real+=1;
return a;
}
complex complex::operator- (double& a){
return complex(real + a, imag);
}
complex complex::operator- (complex& a){
return complex(real - a.real, imag - a.imag);
}
complex complex::operator-= (complex& a){
return complex (real-=a.real, imag-=a.imag);
}
complex complex::operator-= (double& a){
return complex (real-=a.real, imag);
}

complex complex::operator-- (int a){
return complex (real--=a.real, imag);
}

complex complex::operator-- (a){
return complex (real--=a.real);
}


complex complex::operator* (complex& a){
return complex(real * a.real- imag* a.imag, real*a.imag +imag*a.real);
}

complex complex::operator* (double& a){
return complex(real * a.real- imag* a.imag, real*a.imag +imag*a.real);
}

complex complex::operator*= (complex& a)
return complex (real*=a.real, imag*=a.imag);


complex complex::operator*= (double& a){
return complex(real*= a, imag);
}

complex complex:: operator/ (complex& a){
double norm2 = a.real*a.real + a.imag*a.imag;
return complex((real*a.real - imag*a.imag)/norm2, -(real*a.imag + imag*a.real)/norm2);
}

complex complex::operator/= (complex& a){
return complex(real /= a.real, imag /= a.imag);
}
complex complex:: operator/= (double a){
return complex(real /= a.real, imag);
}
complex complex::operator/ (double a){
return complex(real / a.real, imag );
}

void operator= (const complex a&){
real=a.real;
imag=a.imag;
}
bool operator== (complex&);
complex& complex::operator==(complex& ){

if ((real == a.real) && (imag == a.imag))
return true;
else
return false;
  
bool operator!=(complex &c);
bool complex complex::operator!=(complex &c){

if ((real != a.real) && (imaginary != a.imag))
return true;
else
return false;
friend istream& operator >> (istream &in, complex& c){
in >>a.real
in >>a.imag

return complex(in);
}

friend ostream &operator <<(std::ostream &out, complex c){
out < out< return complex(out);
}

complex complex::conj() {
return complex(real,-imag)
}


complex complex::double norm(){
return sqrt(real*real + imag *imag);
}

complex complex::double modulus(){
return sqrt(real*real + imag *imag);
}
int main()
{

return 0;

Explanation / Answer

Your question is not clear, Your code had too many errors. I did remove theose errors. Below is the updated code

///Header

#ifndef COMPLEX_H
#define COMPLEX_H
#include<iostream>


class complex {
public:
complex();
complex(double a);
complex(double a,double b);
complex(int a,int b);
void print() const;
void set(double a=0,double b=0);
void set(int a=0,int b=0);
double getReal() const;
double getImag() const;
void get(double&,double&) const;
complex operator+ (double&);
complex operator+ (complex&);
complex operator+= (complex&);
complex operator+= (int&);
complex operator++ (int);
complex operator++ ();
complex operator- (double&);
complex operator- (complex&);
complex operator-= (complex&);
complex operator-= (double&);
complex operator-- (int a);
complex operator-- ();
complex operator* (complex&);
complex operator* (double&);
complex operator*= (complex&);
complex operator*= (double&);
complex operator/ (complex&);
complex operator/= (complex&);
complex operator/= (double);
complex operator/ (double);
void operator= (const complex&);
bool operator== (complex&);
bool operator!=(complex &c);
//std::istream operator>> (std::istream &in, complex& c);
template <typename T>
friend istream& operator>>(istream& os, complex c);
friend ostream& operator<<(ostream& os, const complex &c);
//friend std::ostream &operator<<(std::ostream &out, complex c);
complex conj() ;
double norm() ;
double modulus();

double real;
double imag;
};
#endif // COMPLEX_H

// Complex Class

#include "complex.h"
//#include<iostream>
#include <string>
#include <stdio.h>
#include<math.h>

using namespace std;

complex::complex(){
real = 0;
imag = 0;
}
complex::complex(double a){
real=a;
imag = 0;
}
complex::complex (double a, double b){
real=a;
imag=b;
}
complex::complex (int a, int b){
real=a;
imag=b;
}
complex complex::operator+ (double& a){
return complex(real + a, imag);
}
complex complex::operator+ (complex& a){
return complex(real + a.real, imag + a.imag);
}
complex complex::operator+= (complex& a){
return complex (real+=a.real, imag+=a.imag);
}
complex complex::operator+= (int& a){
return complex (real+=a, imag);
}
complex complex::operator++ (int a){
return complex (real, imag);
}
complex complex::operator++ ( ){
complex a=complex(real, imag);
real+=1;
return a;
}
complex complex::operator- (double& a){
return complex(real + a, imag);
}
complex complex::operator- (complex& a){
return complex(real - a.real, imag - a.imag);
}
complex complex::operator-= (complex& a){
return complex (real-=a.real, imag-=a.imag);
}
complex complex::operator-= (double& a){
return complex (real-=a, imag);
}
complex complex::operator--(int a){
return complex (real-a, imag);
}
complex complex::operator-- (){
return complex (real, imag);
}

complex complex::operator* (complex& a){
return complex((real * a.real)- (imag* a.imag), (real*a.imag +imag*a.real));
}
complex complex::operator* (double& a){
return complex(real * a, imag);
}
complex complex::operator*= (complex& a)
{
   return complex((real * a.real)- (imag* a.imag), (real*a.imag +imag*a.real));
}

complex complex::operator*= (double& a){
return complex(real*= a, imag);
}
complex complex:: operator/ (complex& a){
double   r=(((real)*(a.real))+((imag)*(a.imag)))/(pow(a.real,2)+pow(a.imag,2));
double   x=(((a.real)*(imag))-((real)*(a.imag)))/(pow(a.real,2)+pow(a.imag,2));

return complex(r,x);
}
complex complex::operator/= (complex& a){
double   r=(((real)*(a.real))+((imag)*(a.imag)))/(pow(a.real,2)+pow(a.imag,2));
double   x=(((a.real)*(imag))-((real)*(a.imag)))/(pow(a.real,2)+pow(a.imag,2));

return complex(r,x);
}
complex complex:: operator/= (double a){
return complex(real /= a, imag);
}
complex complex::operator/ (double a){
return complex(real / a, imag );
}
void complex::operator= (const complex& a){
real=a.real;
imag=a.imag;
}
//bool operator== (complex&);
bool complex::operator==(complex& a){
if ((real == a.real) && (imag == a.imag))
return true;
else
return false;
}
//bool operator!=(complex &c);
bool complex::operator!=(complex &a){
if ((real != a.real) && (imag != a.imag))
return true;
else
return false;
}

istream& operator >> (istream &in, complex& a){
in >> a.real >> a.imag;
return in;
}

template <typename T>
ostream &operator <<(std::ostream &out, const T& c){
out <<c.real<<' '<< c.imag;
return out;
}
complex complex::conj() {
return complex(real,-imag);
}

double complex::norm(){
return sqrt(real*real + imag *imag);
}
double complex::modulus(){
return sqrt(real*real + imag *imag);
}
int main()
{
  
   complex c1(1,2);
   complex c2(3,4);
   complex c3,c4,c5;
  
   double d=2;
   //c1=c2+d;
   //c1=c2+2;
   c3=c1+c2;
   c4=c1*c2;
   c5=c1/c2;
   //c5/=d;
   //c3/=c2;
  
  
   cout << "Addition (c1,c2): "<< c3.real << " "<< c3.imag <<"i" << endl;
   cout << "Multiplication(c1,c2): "<< c4.real << " "<< c4.imag <<"i" << endl;
   cout << "Division(c1/c2): "<< c5.real << " "<< c5.imag <<"i" << endl;

return 0;

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote