?? inheritstack.h
字號:
// inheritstack.h// Data structures for a "stack" -- a Last-In-First-Out list of integers.//// We define two separate implementations of stacks, to// illustrate C++ inheritance.//// Copyright (c) 1992,1993,1995 The Regents of the University of California.// All rights reserved. See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#ifndef INHERITSTACK_H // to prevent recursive includes#define INHERITSTACK_H#include "copyright.h"#include "list.h"// The following defines an "abstract" stack of integers.// This class is abstract because no one is allowed to create// instances of it; instead, you make instances of the derived// classes that inherit from it.class Stack { public: virtual ~Stack(); // Destructor virtual void Push(int value) = 0; // Push an integer on the stack virtual int Pop() = 0; // Pop an integer off the stack virtual bool Full() = 0; // Returns TRUE if the stack is full virtual bool Empty() = 0; // Returns TRUE if the stack is empty void SelfTest(int numToPush); // Test whether the implementation works. // Note that the test routine is shared among // all derived classes because it shouldn't // matter to the test code which version we're using! protected: Stack(); // Constructor is protected to prevent anyone but // derived classes from calling constructor.};// The following defines an implementation of Stack using arrays.// This is the same as the original implementation in stack.h,// except we don't need a SelfTest() because that's defined above by Stack!class ArrayStack : public Stack { public: ArrayStack(int sz); // Constructor: initialize variables, allocate space. ~ArrayStack(); // Destructor: deallocate space allocated above. void Push(int value); // Push an integer on the stack int Pop(); // Pop an integer off the stack bool Full(); // Returns TRUE if the stack is full bool Empty(); // Returns TRUE if the stack is empty private: int size; // The maximum capacity of the stack. int top; // Index of the next position to be used. int *stack; // A pointer to an array that holds the contents.};// The following defines an implementation of Stack using lists.//// Note that a list implementation can't overflow, so we don't// need to pass a maximum size into the constructor.class ListStack : public Stack { public: ListStack(); // Constructor: initialize variables, allocate space. ~ListStack(); // Destructor: deallocate space allocated above. void Push(int value); // Push an integer on the stack int Pop(); // Pop an integer off the stack bool Full(); // Always return FALSE, this implementation never overflows bool Empty(); // Returns TRUE if the stack is empty private: List *stack;};#endif INHERITSTACK_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -