1
私はクラスに整数を追加できる演算子を作ろうとしていますが、次のような問題があります。バイナリ演算子のオーバーロードとポリモピズム
int & operator+=(int & num, Base & b)
{
return num;
}
int & operator+=(int & num, Derived & d)
{
num += d.value_;
return num;
}
のオペレータ実装と
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);
だから私はベクトルを持っていると私はそれを反復処理し、1つの整数にすべての値を追加しようとしています。ただし、派生型のものであっても合計を変更することはありません。
オペレータに多態性のオーバーロードをさせるにはどうすればよいですか?
考え方全体には面白い匂いがありますが、とにかく*ベクトル*の定義を提供する必要があります。最初の潜在的な問題は、すべてのオブジェクトが 'Base'にスライスされていることです... –