#pragma once template class Stack { private: class StackNode { public: StackNode* last; T data; templateStackNode(T2 &&data); }; int total; StackNode* head; public: Stack(); ~Stack(); Stack(const Stack& data); Stack(Stack&& data) noexcept; Stack& operator= (Stack&& data) noexcept; Stack& operator= (const Stack& data); void clear(); bool isEmpty(); int size(); templatevoid push(T2 &&data); T& front(); void pop(); }; #include"Stack.cpp"