【发布时间】:2016-06-28 16:30:14
【问题描述】:
不知道为什么我会收到此错误。类中的所有函数都已定义。我也尝试在 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();
}
【问题讨论】:
-
您希望
s成为什么的堆栈? -
其实不行,你想让
s返回一堆什么?