I just recently started getting a syntax error with my = operator and my copy constructor, but I don't even call the copy constructor in my program. here's the relevant code:

[code]

okay, here's the error I keep getting:Code://struct that contains the coefficient and exponent of each term struct term { int co; //coefficient int exp; //exponent term* link; }; typedef term* termptr; //class that contains the head of the list class Polynomial { public: Polynomial(Polynomial& p1); ~Polynomial(); Polynomial() {head = NULL;} void operator = (Polynomial& p1); Polynomial operator + (Polynomial& p1); termptr get_head() {return head;} void set_head(termptr t1) {head = t1;} friend istream& operator >> (istream& ins, Polynomial& p1); friend ostream& operator << (ostream& outs, Polynomial& p1); private: termptr head; }; //I'm not gonna list the definitions because I don't think they're relevant plus some of them are quite long //here's my application file int main() { Polynomial p1, p2, result; cout << //prompt cin >> p1; // the >> operator is overloaded for lists cout << //prompt cin >> p2; cout << endl; result = p1 + p2; cout << result; return 0; }

error: no matching function for call to 'Polynomial::Polynomial(Polynomial)'

note: candidates are: Polynomial::Polynomial(Polynomial&)

error: initializing argument 1 of 'void Polynomial:perator =(Polynomial&)'

I get the error on this line in my application file: result = p1 + p2;

I have tried everything I can think of, but I know it's something simple. help me out please