/* 类模板之栈.cpp */ #include using namespace std; template class Stack { public: Stack() {} void init() { top = -1; } bool isFull() { if (top >= MAXSIZE - 1) return true; else return false; } bool isEmpty() { if (top == -1) return true; else return false; } void push(T e); T pop(); private: T elems[MAXSIZE]; int top; }; template void Stack::push(T e) { if (!isFull()) { elems[++top] = e; } else { cout << "栈已满,请不要再加入元素!"; return; } } template T Stack::pop() { if (!isEmpty()) { return elems[top--]; } else { cout << "栈已空,请不要再弹出元素!"; return 0; } } int main(int argc, char const *argv[]) { Stack s1; s1.init(); int i; for (i = 1; i < 11; i++) s1.push(i); for (i = 1; i < 11; i++) cout << s1.pop() << "\t"; cout << endl; return 0; }