Создать класс Stack, который будет реализовывать принцип работы структуры данных стек. Размер стека не должен быть ограничен

День добрый! Прошу помощи в начальных изучениях Stack. Необходимо вынести интерактив с пользователем(размер и прочее) из самого класса. Задать изначальный размер в самом конструкторе. Вот что наделал, но довести до ума не выходит. Понимаю что это не сложно, но как реализовать в голове не складывается.

using namespace std;

class Stack
{
private:
int *arr;
int size;
public:
Stack()
{
    SetArraySize();
    MakeArray(arr);
}

void SetArraySize()
{
    cout << "Enter the size at array: ";
    cin >> size;
}

void MakeArray(int*& array)
{
    array = new int[size];
}

void print()
{
    cout << "Array: ";
    for (int i = 0; i < size; i++)
    {
        cout << *(arr + i) << ' ';
    }
    cout << '\n';
}

int* CopyArray()
{
    int* newArray;
    MakeArray(newArray);
    for (int i = 0; i < size - 1; i++)
    {
        *(newArray - i) = *(arr + i);
    }
    return newArray;
}

int pop()
{
    int responce = *arr;
    size--;
    arr++;
    return responce;
}

void push(int a)
{
    size++;
    int* newArr = CopyArray();
    *(newArr + size) = a;
    deleteArray();
    arr = newArr;
}

void deleteArray()
{
    delete arr;
}

};


Ответы (0 шт):