I have a question that how i can avoid the destruction in class. I have the sample code C++ here:
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.
    }
};
In here, when the object has got the value and return. But object S have been destroyed by destruction before returned. Can anyone help me to avoid the destruction or some way for the object S can be returned to main. Thanks
 
     
    