Я немного смущен различиями между
Type operator + (const Type &type);
Type &operator += (const Type &type);
и
friend Type operator + (const Type &type1, const Type &type2);
friend Type &operator += (const Type &type1, const Type &type2);
какой путь является предпочтительным, как они выглядят и когда следует использовать?