#ifndef __STACK_ERROR_ #define __STACK_ERROR_ #include "Error.h" class StackError : public Error { public: StackError(const std::string& func = "", const std::string& fname = "", int line = -1) :Error(func, fname, line) {} virtual std::string message() const { return "Stack Error: " + msg; } }; class StackUnderflowError : public StackError { public: StackUnderflowError(const std::string& func = "", const std::string& fname = "", int line = -1) :StackError(func, fname, line) {} virtual std::string message() const { return "Stack Underflow Error: " + msg; } }; class StackOverflowError : public StackError { public: StackOverflowError(const std::string& func = "", const std::string& fname = "", int line = -1) :StackError(func, fname, line) {} virtual std::string message() const { return "Stack Overflow Error: " + msg; } }; #endif