Beispiel

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;
}


Lösung
Geben Sie nie ein durch 'new' erstelltes Objekt zurück.

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);
}