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