不确定我为什么会收到此错误。定义了类中的所有函数。我尝试在T中放入一个值,但没有任何反应。我一直收到这个错误"错误C2955:使用类模板需要模板参数列表"
template< class T >
class Stack {
public:
Stack(int = 10); // default constructor (stack size 10)
// destructor
~Stack() {
delete[] stackPtr;
}
bool push(const T&);
bool pop(T&);
// determine whether Stack is empty
bool isEmpty() const {
return top == -1;
}
// determine whether Stack is full
bool isFull() const {
return top == size - 1;
}
private:
int size; // # of elements in the stack
int top; // location of the top element
T *stackPtr; // pointer to the stack
};
// constructor
template< class T >
Stack< T >::Stack(int s) {
size = s > 0 ? s : 10;
top = -1; // Stack initially empty
stackPtr = new T[size]; // allocate memory for elements
}
template< class T >
bool Stack< T >::push(const T &pushValue) {
if (!isFull()) {
stackPtr[++top] = pushValue;
return true;
}
return false;
}
template< class T >
bool Stack< T >::pop(T &popValue) {
if (!isEmpty()) {
popValue = stackPtr[top--]; // remove item from Stack
return true;
}
return false;
}
int main() {
Stack s();
}
答案 0 :(得分:1)
你需要决定你将在这里拥有什么类型的堆栈。
Stack<int> s;
这将构成类型T为int的堆栈。您也可以在这里使用其他类型。让我们说你想要一堆花车。
Stack<float> s;
等