Given the following code snippet,
class Num
{
public:
    Num(int iNumber = 0) : m_iNumber(iNumber) {}
    Num operator+=(const Num& rhs)
    {
        this->m_iNumber = (this->m_iNumber + rhs.m_iNumber);
        return *this;
    }
private:
    int m_iNumber;
};
//===========================================================
int _tmain(int argc, _TCHAR* argv[])
{
    Num a(10);
    Num b(100);
    b += a;
    return 0;
}
I would like to know how to correctly overload the operator+=.
Questions:
- How to define the signature of this operator? Specially, what should be used for the return value? 
- How to implement the function body? 
- How to use this overload operator? 
I have provided a solution as above but I have concerns that it is not correct.
 
     
     
     
     
     
     
     
    