19 lines
423 B
C++
19 lines
423 B
C++
#ifndef STACK_H
|
|
#define STACK_H
|
|
|
|
#include "Object.h"
|
|
|
|
namespace Kylin {
|
|
template <typename T>
|
|
class Stack : public Object {
|
|
public:
|
|
virtual void push(const T &value) = 0;
|
|
virtual T pop() = 0;
|
|
virtual T &top() = 0;
|
|
const T &top() const { return const_cast<Stack *>(this)->top(); }
|
|
virtual void clear() = 0;
|
|
virtual size_t size() const = 0;
|
|
};
|
|
} // namespace Kylin
|
|
#endif // STACK_H
|