我写了一个使用两个类的书的例子。一个IntStack和一个名为MathStack的类。 IntStack包含所有常规的弹出和压入命令,而MathStack通过声明它公开声明来包含intStack类。 MathStack类使用IntStack及其弹出和推送对象执行数学运算。当我完成它时很好地工作,但接下来我想将我的堆栈更新为动态堆栈并再次使用此类。动态堆栈运行良好,但是我在写它时使用了模板。我相信这是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
由于该诀窍。因为我只是计划用int来使用它,所以我选择了第一个。 – falnir 2012-02-23 15:49:16