コピーコンストラクタを利用するとポインタ値がコピーされないため、
デストラクタによってポインターを削除されないのですが、
関数内での演算の結果は元の配列に反映されませんよね。
で、この関数内での演算の値を元の配列に返したいのですがどのようにすればよろしいのでしょうか?
例えば下のプログラムでfugaの値の変更を反映させるにはどのようにすればよいのでしょうか?

class hoge{
public:
int* a;
hoge(){a = new int[10];};
hoge(hoge& other){a = new int[10]; for(int i = 0; i < 10; i++){a[i] = hoge.a[i]};
~hoge(){delete [] a;};
}

void main(){
hoge fuga;
for(int i = 0; i < 10; i++){
fuga.a[i] = i;
}

fuga(hoge& fuga);

}

fuga(hoge& fuga){
for(int i = 0; i < 10; i++){
fuga.a[i] = fuga.a[i] + 10;
}}