破坏我有一个问题,我怎么能避免在课堂上的破坏。 我有示例代码C++在这里:如何避免
class Array {
int *p;
int n;
public:
Array(int n_ = 0) {
p = new int[n_];
}
~Array(void) {
cout << "Deleted" << endl; delete []p;
}
friend Array operator+(Array A, Array B) // the amount of elements A and B are the same
{
Array S(A.n);
for(int i=0; i < A.n; i++)
S.p[i] = A.p[i] + B.p[i];
return S; // object S has been destroyed before returned.
}
};
在这里,当对象已经拿到了价值和回报。但是物品S在返回之前已经被毁灭毁灭了。任何人都可以帮助我避免破坏或某种方式让对象S可以返回到主体。由于
提供一个拷贝构造函数,使S'的'返回副本(这是获取返回的)是有效的。 –