1

クラスがあるとしましょう:

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;ことは受け入れられません。

4

1 に答える 1