我寫了一個使用兩個類的書的例子。一個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