stack::の7文字を足すのと代入する順序変えるだけやん
プログラムの再利用とか考えたこと無いのか

......まぁ良いや。これをクラス定義の下に埋めろ。

stack::stack(const stack&s){max=s.max;data=new int[max];sp=s.sp;for(int i=0;i<max;++i)data[i]=s.data[i];}