Вам нужно выделить новый массив размер которого = размер_массива_1 + размер_массива_2, а после скопировать в него данные по очереди из 1го и из 2го.
В вашем коде в функции push создаются новые массивы:
int* base = new int[size];
//...
int* copy = new int[size];
и эти массивы видны только до конца функции push, а оригинальные вы не трогаете вообще, а только освобождаете по ним память.
Функция push должна выглядеть как-то так(код набирал тут):
push(int arg){
new *int new_array = new int[size+1]
for (int i = 0; i < size; i++){
new_array[i]=base[i];
}
new_array[size] = arg;
delete[] base;
base = new_array;
size++;
}