【发布时间】:2012-03-14 00:03:42
【问题描述】:
我从一本书中写了一个例子,它使用了两个类。一个 IntStack 和一个名为 MathStack 的类。 IntStack 包含所有常规的 pop 和 push 命令,而 MathStack 通过将类 intStack 声明为 public 来包含它。 MathStack 类使用 IntStack 及其 pop 和 push 对象执行数学运算。当我完成它时工作得很好,但接下来我想将我的堆栈更新为动态堆栈并再次使用这个类。动态堆栈运行良好,但我在编写时使用了模板。我相信这是导致 MathStack 出现一些问题的原因。
我应该怎么做才能使 MathStack 对基于模板的堆栈友好?请指教。
MathStack 声明:
#include "Stack.h"
class MathStack : public Stack
{
public:
//Constructor
//MathStack operations
void add();
void sub();
void mult();
void div();
void addAll();
void multAll();
};
堆栈声明:
template < class T>
class Stack{
private:
List<T> aList;
public:
Stack();
Stack(const Stack<T> &aStack);
~Stack();
void push(T newItem);
void pop();
void pop(T StackTop);
T getTop();
bool isEmpty() const;
}; //end List class
【问题讨论】: