// @topic T060520 Stack of integers
// @brief Stack class declaration

#ifndef STACK_H_INCLUDED_
#define STACK_H_INCLUDED_

class Stack {
    static const int DEFAULT_CAPACITY = 1024;
    int* stack_memory;
    int capacity;
    int top_pos;
public:
    // constructors
    Stack();
    Stack(int initial_capacity);

    // stack operations
    void push(int value);
    void pop();
    int top() const;
    int& top();
    int size() const;
};// class Stack

#endif //STACK_H_INCLUDED_