クラスの 1 つに整数を追加できる演算子を作成しようとしていますが、次のような問題があります。
struct Base
{
//Will have value of zero
};
struct Derived : public Base
{
int value_;
};
int & operator+=(int & num, Base & b);
int & operator+=(int & num, Derived & d);
のオペレーター実装で
int & operator+=(int & num, Base & b)
{
return num;
}
int & operator+=(int & num, Derived & d)
{
num += d.value_;
return num;
}
だから私はベクトルを持っていて、それを繰り返し処理してすべての値を1つの整数に追加しようとしています。ただし、Derived 型であっても合計は変わりません。
演算子のオーバーロードをポリモーフィックにするにはどうすればよいですか?