示例
class
MyClass {
public
:
MyClass
(
int
input);
MyClass
(
const
MyClass
&
right
);
int
getter()
const
{
return
num
; }
void
settter(
int
input) { field =
num
; }
private
:
int
num;
};
const
MyClass
operator
+(
const
MyClass
& left,
const
MyClass& right)
{
return
MyClass
(left.getter() + right.getter());
}
解决方案
如果声明了二目运算符,可能还想具有 operator= 函数。
class
MyClass {
public
:
MyClass
(
int
input);
MyClass
(
const
MyClass
& right);
int
getter()
const
{
return
num
; }
void
settter(
int
input) { field =
num
; }
MyClass&
operator
+=(
const
MyClass& right);
private
:
int
num;
};
const
MyClass
operator
+(
const
MyClass
& left,
const
MyClass& right)
{
return
MyClass
(left) += right;
}