My intentions of this code is to use overloaded operators for assignment, addition, subtraction and multiplication of polynomials. What I have done so far are the assignment, addition overloaded operators but I am receiving errors. - Thanks
    polynomial.cpp: In member function ‘Polynomial& Polynomial::operator+=(const Polynomial&)’:
polynomial.cpp:67:13: error: cannot convert ‘float*’ to ‘float’ in assignment
     *newArr = new float[Capacity];
             ^
polynomial.cpp: In function ‘const Polynomial operator+(const Polynomial&)’:
polynomial.cpp:81:3: error: invalid use of ‘this’ in non-member function
  *this += poly1;
   ^
polynomial.cpp:82:10: error: invalid use of ‘this’ in non-member function
  return *this;
          ^
polynomial.cpp: In member function ‘Polynomial& Polynomial::operator=(const Polynomial&)’:
polynomial.cpp:94:3: error: ‘newArr’ was not declared in this scope
  *newArr = new float[this->Capacity];
   ^
-
#ifndef POLY_H
#define POLY_H
#include <iostream>
#include <cstring>
using namespace std;
//Base Class---------------------------------------------
class Polynomial {
    private:
        //number of coefficients & exponents
        int NumberofTerms;
        //arrays
        float *Coefficient_arr;
        float *Exponent_arr;
        //size
        int Capacity;
    public:
        //default constructor
        Polynomial();
        //regular constructor
        Polynomial(int numterms, float coef[], float expnt[]);
        //deconstructor
        ~Polynomial();
        //Setters - Getters
        float *get_coefficient() { return Coefficient_arr; }
        float *get_exponent() { return Exponent_arr ; }
        float get_numberofTerms() { return NumberofTerms;}
        //Overload addition
        Polynomial& operator += ( const Polynomial& poly );
        const Polynomial operator + (const Polynomial& other) const;
        //Assignment operator
        Polynomial& operator=(const Polynomial& poly );
};
 #endif
-
#include <iostream>
#include <cstring>
#include "polynomial.h" //header file
using namespace std;
//----------------------------------------------
//default constructor
Polynomial::Polynomial(){
    NumberofTerms = 1;
    Coefficient_arr = new float[1];
    Exponent_arr = new float[1];
    Capacity = 1;
    Coefficient_arr[0] = 0;
    Exponent_arr[0] = 0;
}
//regular constructor
Polynomial::Polynomial( int numterms, float coef[], float expnt[]){
    NumberofTerms = numterms;
    Coefficient_arr = new float[numterms];
    Exponent_arr = new float[numterms];
    Capacity = numterms;
    for (int i = 0; i < numterms; ++i)
    {
        Exponent_arr[i] = expnt[i];
        Coefficient_arr[i] = coef[i];
    }
}
//Destructor
Polynomial::~Polynomial(){
    delete[] Coefficient_arr;
    delete[] Exponent_arr; 
}
//Addition Overload
Polynomial& 
Polynomial::operator += ( const Polynomial& poly ){
    bool found_coeff;
    for (int i = 0; i < NumberofTerms; ++i) //first array 
    {
        found_coeff = false;
        for (int j = 0; j < NumberofTerms; ++j)//second array 
        {
            if (poly.Exponent_arr[i] == this->Exponent_arr[j]) 
            {   
                this->Coefficient_arr[j] += poly.Coefficient_arr[i];
                found_coeff = true;
            }
        }
        if (found_coeff == false)
        {
            this->NumberofTerms+=1;
            if (this->NumberofTerms > this->Capacity)
            {
                //resize Coefficient array
                Capacity = Capacity*2; 
                float *newArr = new float[Capacity];
                memcpy( newArr, this->Coefficient_arr, this->Capacity * sizeof(float) );
                delete [] this->Coefficient_arr;
                this->Coefficient_arr = newArr;
                delete [] newArr;
                //resize exponent array
                *newArr = new float[Capacity];
                memcpy( newArr, this->Exponent_arr, Capacity * sizeof(float) );
                delete [] this->Exponent_arr;
                this->Exponent_arr = newArr;
                delete [] newArr;
                //add exp and coeff to end of arr
                this->Coefficient_arr[ NumberofTerms ] = (poly.Coefficient_arr[i]);
                this->Exponent_arr[ NumberofTerms ] = (poly.Exponent_arr[i]);
            }
        }
    }
    return *this;
}
const Polynomial operator + (const Polynomial& poly1){
    *this += poly1;
    return *this;
}
//Assignment Operator
Polynomial& 
Polynomial::operator=(const Polynomial& poly){
    if(this == &poly){
        return *this;
    }
    //Assign poly to _this_ for Number of terms & Capacity
    this->NumberofTerms = poly.NumberofTerms;
    this->Capacity = poly.Capacity;
    //assign poly to _this_ for Coefficient
    *newArr = new float[this->Capacity];
    memcpy( newArr, poly.Coefficient_arr, poly.Capacity * sizeof(float) );
    delete [] this->Coefficient_arr;
    this->Coefficient_arr = newArr;
    delete [] *newArr;
    //assign poly to _this_ for exponent
    *newArr = new float[Capacity];
    memcpy( newArr, poly.Exponent_arr, poly.Capacity * sizeof(float) );
    delete [] this->Exponent_arr;
    this->Exponent_arr = newArr;
    delete [] *newArr;
    return *this;   
}
 
     
    