这是可用于+
操作的类的示例。
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
吗?如果没有,我如何确保没有内存泄漏?
+
运算符重载是这样设计的,因此不会修改操作数。