// stack.h ----------------------------------------------- #ifndef _STACK_H_ #define _STACK_H_ #include typedef std::string Data; // GIVEN KOD - ÄNDRAS INTE class Stack { public: Stack() : mTop(nullptr) {} const Data& top() const; Data pop(); void push(Data const&); unsigned size() const; // IMPLEMENTERAS I HUVUDUPPGIFT Stack(Stack const&); ~Stack(); // TILLDELNINGSOPERATOR FÅR LÄGGAS TILL HÄR // LÄGGS TILL FÖR EXTRAPOÄNG Stack& operator=(Stack const&); private: // GIVEN KOD - ÄNDRAS INTE class Elem { public: Elem(Data const& d, Elem* n = nullptr) : value(d), next(n) {} Data value; Elem* next; // IMPLEMENTERAS KANSKE I HUVUDUPPGIFT ~Elem(); Elem* clone() const; }; Elem* mTop; }; #endif