User defined data type that uses another user defined data type as a parameter
<p>I am having trouble getting the compiler to accept my below defined user data type (Term) that accepts another user data type (Rational) as a parameter.  Any suggestions on how to make this work would be great!</p>

<pre><code>#ifndef _TERM_H
#define _TERM_H

#include "Rational.h"

using namespace std;

class Term {

public:

    //constructors
    Term( const Rational &amp;a, const int &amp;b)
    { 
        this-&gt;coefficient = a;
        this-&gt;exponent = b;
    }

    Term(){}

    ~Term () {}

    //print the Rational
    void print()const 
    {
        cout &lt;&lt; coefficient &lt;&lt; " x^"  &lt;&lt; exponent &lt;&lt; endl;
    }

private:

    Rational *coefficient, *a;
    int exponent, b;
};

#endif
</code></pre>

<hr>

<pre><code>#ifndef _TERM_H
#define _TERM_H

using namespace std;

class Rational {

public:

    //constructors
    Rational( const int &amp;a, const int &amp;b){
        if (a != 0)
            if (b != 0)
                this-&gt;numerator = a;
            this-&gt;denominator = b;
    }

    //print the Rational
    void print()const {
        cout &lt;&lt; numerator &lt;&lt; "/" &lt;&lt; denominator &lt;&lt; endl;
    } 

    //add 2 Rationals 
    void add(const Rational &amp;a, const Rational &amp;b){
        numerator = ((a.numerator * b.denominator)+(b.numerator*a.denominator));
        denominator = (a.denominator*b.denominator);  
    }

 ...

    private:
     int a, b, numerator, denominator;
};

#endif
</code></pre>

<p>I keep getting the below error messages.</p>

<p>Term.h(30) : error C2440: '=' : cannot convert from 'const Rational' to 'Rational *'
1>        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========</p>
