Question
C++: Here is the assignment at task - Develop class Term. The class contains (1) A coefficient, and an exponent. E.g., term 2x^4 has the
C++: Here is the assignment at task - Develop class Term. The class contains (1) A coefficient, and an exponent. E.g., term 2x^4 has the coefficient of 2 and the exponent 4. (2) Overload the output operator (<<) to properly display the term Develop class Polynomial. The internal representation of a Polynomial is an array of terms. Develop a complete class containing proper constructor and destructor functions as well as set and get functions. The class should also provide the following overloaded operator capabilities: a) Overload the addition operator (+) to add two Polynomials. b) Overload the assignment operator to assign one Polynomial to another. c) Overload the addition assignment operator (+=), subtraction assignment operator (-=), d) Overload the output operator (<<) to properly display the polynomial. Needs 5 files
Here is my current code that I'm getting errors for.
//term.hpp
#include
using namespace std; class Term {
friend ostream &operator<<(ostream &, const Term &);
public: void operator=(const Term &term); Term(); Term(int c, int e); ~Term(); void setCoefficient(int c); void setExponent(int e); int getCoefficient(); int getExponent(); private: int coefficient; int exponent; };
//term.cpp
#include
using namespace std; //using std::setw;
Term::Term(int c, int e) //constructor { coefficient = c; exponent = e; }
Term::~Term() //destructor { }
void Term::setCoefficient(int c) { coefficient = c; } void Term::setExponent(int e) { exponent = e; } int Term::getCoefficient() { return coefficient; } int Term::getExponent() { return exponent; } void Term::operator=(const Term &term) { coefficient=term.coefficient; exponent=term.exponent; } ostream &operator<<(ostream &output, const Term &term) { output << term.coefficient << "x^" << term.exponent; return output; }
//polynomial.hpp
#include
//polynomial.cpp
#include
Polynomial::Polynomial() { size=0; srand(time(NULL)); for (int i = 0; i < 20; i++) { terms[i].setCoefficient(rand()%5); terms[i].setExponent(rand()%5); } }
Polynomial::~Polynomial() { delete []terms; }
Term Polynomial :: getTerm(int index) { return terms[index]; }
bool Polynomial::addTerm(int c,int e) //return true if term is added, else return false { if(c==0) // Term with exponent 0 would make the whole term 0 , 0*x^2=0 return false;
else { Term newTerm(c,e); if(size==0) { terms[0]=newTerm; } else if(newTerm.getExponent()>terms[0].getExponent()) { for(int i=size-1;i>=0;i--) { terms[i+1]=terms[i]; } terms[0]=newTerm; } else if(newTerm.getExponent()
bool Polynomial::deleteTerm(int e) // return true if terms is found and deleted, else return false { if(size==0) return false; for(int i=0;i int Polynomial::getSize() { return size; } Polynomial &Polynomial :: operator+(const Polynomial &plus) { Polynomial p; for(int i=0;i //main.cpp (in progress) #include using namespace std; int main() { Term t1; Term t2; Term t3; Polynomial p1; Polynomial p2; Polynomial p3; return 0; } These are the errors that are occurring at polynomial.cpp: ||=== Build: Debug in assignment111 (compiler: GNU GCC Compiler) ===| C:\Users\X\Desktop\assignment\polynomial.cpp||In destructor 'Polynomial::~Polynomial()':| C:\Users\X\Desktop\assignment\polynomial.cpp|22|warning: deleting array '((Polynomial*)this)->Polynomial::terms'| C:\Users\X\Desktop\assignment\polynomial.cpp|108|error: prototype for 'Polynomial& Polynomial::operator+(const Polynomial&)' does not match any in class 'Polynomial'| C:\Users\X\Desktop\assignment\polynomial.hpp|14|error: candidate is: Polynomial Polynomial::operator+(const Polynomial&)| C:\Users\X\Desktop\assignment\polynomial.cpp|117|error: prototype for 'Polynomial& Polynomial::operator=(const Polynomial&)' does not match any in class 'Polynomial'| C:\Users\X\Desktop\assignment\polynomial.hpp|15|error: candidate is: Polynomial Polynomial::operator=(const Polynomial&)| C:\Users\X\Desktop\assignment\polynomial.cpp|124|error: prototype for 'Polynomial& Polynomial::operator+=(const Polynomial&)' does not match any in class 'Polynomial'| C:\Users\X\Desktop\assignment\polynomial.hpp|16|error: candidate is: Polynomial Polynomial::operator+=(const Polynomial&)| C:\Users\X\Desktop\assignment\polynomial.cpp|130|error: prototype for 'Polynomial& Polynomial::operator-=(const Polynomial&)' does not match any in class 'Polynomial'| C:\Users\X\Desktop\assignment\polynomial.hpp|17|error: candidate is: Polynomial Polynomial::operator-=(const Polynomial&)| ||=== Build failed: 8 error(s), 1 warning(s) (0 minute(s), 2 second(s)) ===|
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started