>>364
メンバ関数に以下を追加でOK
tack(const stack&s){sp=s.sp;max=s.max;data=new int[max];for(int i=0;i<max;++i)data[i]=s.data[i];}
stack&operator=(stack s){swap(s);return *this;}
void swap(stack&s){
    int t=sp;sp=s.sp;s.sp=t;
    t=max;max=s.max;s.max=t;
    int*p=data;data=s.data;s.data=p;
}