C++: Problem with overloading mathematical operators
<p>I am looking to overload, let's say, the addition operator and have it add two objects of the same class.  When I declare this "operator+" prototype function in the class declaration in the header file, I pass in both objects as parameters.  I get a compiler error saying that "binary 'operator +' has too many parameters".  I was searching around for an answer online and found out that declaring an inline function just outside the class declaration in the header file compiled out.  I'm wondering what I was doing wrong or if I'm missing something here.  Here is the code I am using in the header file.</p>

<pre><code>class Person
{
private:
    int age;
    double weight;
public:
    Person::Person();                           //default constructor       
    Person::~Person();                           //default desctructor
    Person operator+(Person r, Person i);
};
</code></pre>

<p>This compiles with the error I mentioned above.  Below is the code that compiles fine.</p>

<pre><code>class Person
{
private:
    int age;
    double weight;
public:
    Person::Person();                           //default constructor       
    Person::~Person();                           //default desctructor
};
inline Person operator+(Person r, Person i)
{
return Person(0,0); 
}
</code></pre>
