Оператор + должен быть функцией, не являющейся членом.Тип возвращаемого значения должен быть константным объектом.Если вы определили оператор =, то всегда лучше также определить оператор + =.Таким образом, вы можете реализовать оператор + в терминах оператора + =.
const PerfectNum operator+(const PerfectNum& lhs, const PerfectNum& rhs)
{
PerfectNum ret(lhs);
ret += rhs;
return rhs;
}