クラスがあるとしましょう:
class MyIntegers
{
public:
MyIntegers(int sz); //allocate sz integers in _Data and do some expensive stuff
~MyIntegers(); //free array
int* _Data;
}
そして、この小さなコード:
int sz = 10;
MyIntegers a(sz), b(sz), c(sz);
for (int i=0; i<sz; i++)
{
c._Data[i] = a._Data[i] + b._Data[i];
}
一時オブジェクトを作成せず operator+
にループを置き換えるために三項をオーバーロードすることは可能ですか?c=a+b
operator=
私の場合、一時オブジェクトの作成を避けるためにandoperator+=
と writeをオーバーロードするc=a; c+=b;
ことは受け入れられません。