// A Stack for ints
class Stack2
{
public:
Stack2(int capacity) : items_(new int[capacity]), count_(0) {}
~Stack2() { delete[] items_; }
void Push(int item) { items_[count_++] = item; }
int Pop() { return items_[--count_]; }
bool IsEmpty() { return (count_ == 0); }
private:
int *items_;
int count_;
};
// A Stack for doubles
class Stack2
{
public:
Stack2(int capacity) : items_(new double[capacity]), count_(0) {}
~Stack2() { delete[] items_; }
void Push(double item) { items_[count_++] = item; }
double Pop() { return items_[--count_]; }
bool IsEmpty() { return (count_ == 0); }
private:
double *items_;
int count_;
};
// A Stack for char *
class Stack2
{
public:
Stack2(int capacity) : items_(new char *[capacity]), count_(0) {}
~Stack2() { delete[] items_; }
void Push(char * item) { items_[count_++] = item; }
char * Pop() { return items_[--count_]; }
bool IsEmpty() { return (count_ == 0); }
private:
char **items_;
int count_;
};
// A Stack for StopWatches
class Stack2
{
public:
Stack2(int capacity) : items_(new StopWatch[capacity]), count_(0) {}
~Stack2() { delete[] items_; }
void Push(StopWatch item) { items_[count_++] = item; }
StopWatch Pop() { return items_[--count_]; }
bool IsEmpty() { return (count_ == 0); }
private:
StopWatch *items_;
int count_;
};