// @topic T060820 Stack of integers v3
// @brief Stack class declaration with overloaded assignment operator
#ifndef STACK_H_INCLUDED_
#define STACK_H_INCLUDED_
#include <iostream>
class Stack {
static const int DEFAULT_CAPACITY = 1024;
int* stack_memory;
int capacity;
int top_pos;
public:
// constructors/destructor
Stack();
Stack(int initial_capacity);
Stack(Stack const& other); // copy constructor
~Stack(); // destructor
// overloaded operators
//private: // do this to disable the = operator
Stack& operator=(Stack const& other);
public:
// stack operations
void push(int value);
void pop();
int top() const;
int& top();
int size() const;
};// class Stack
#endif //STACK_H_INCLUDED_