サンプル
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());
}
ソリューション
2 項演算子を宣言する場合は、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;
}