Ejemplo

class MyClass { 
public:
MyClass(int one, int two);
~MyClass();

private:
int one, two;
friend const MyClass& operator*(const MyClass& left, const MyClass& rhs);
};

inline const MyClass& operator*(const MyClass& left, const MyClass& right)
{
MyClass *result = new MyClass(left.one * right.one, left.two * right.two);
return *result;
}


Solución
No devuelva nunca un objeto creado como nuevo.

class MyClass { 
public:
MyClass(int one, int two);
~MyClass();

private:
int one, two;
friend const MyClass operator*(const MyClass& left, const MyClass& rhs);
};

inline const MyClass operator*(const MyClass& left, const MyClass& right)
{
return MyClass(left.one * right.one, left.two * right.two);
}