操作に使用できるクラスの例を次に示します+
。
class A
{
public:
int *array;
A()
{
array = new int[10];
}
~A()
{
delete[] array;
}
A operator+ (const A &b)
{
A c;
for(int i=0; i<10; i++)
c.array[i] += array[i] + b.array[i];
return c;
}
};
int main()
{
A a,b,c,d;
/* puts some random numbers into the arrays of b,c and d */
a = b+c+d;
}
a
結果をコピーする前にデストラクタを実行しb+c+d
ますか? そうでない場合、メモリがリークしていないことを確認するにはどうすればよいですか?
演算子の+
オーバーロードは、オペランドが変更されないようにこのように設計されています。