模板类错误C++

Template Class error C++

本文关键字:C++ 错误      更新时间:2023-10-16

我正在学习如何制作模板类,我遵循这个概念,但遇到了错误。我有一个类,我把它变成了一个模板,但我收到以下错误;

simplestack.h(24):错误 C2955:"SimpleStack":使用类模板需要模板参数列表

simplestack.h(9) : 参见 'SimpleStack' 的声明

simplestack.h(28): 错误 C2244: 'SimpleStack::p ush' : 无法将函数定义与现有声明匹配

simplestack.h(12) : 参见 'SimpleStack::p ush' 的声明

这是我的代码:

const int MAX_SIZE = 100; 
template <typename T>
class SimpleStack
{
public:
  SimpleStack();
  SimpleStack & push(T value);
  T pop();
private:
  T items[MAX_SIZE];
  T top;
};
template <typename T>
SimpleStack<T>::SimpleStack() : top(-1)
{}
template <typename T>
SimpleStack &SimpleStack<T>::push(T value)
{
  items[++top] = value;
  return *this;
}
template <typename T>
T SimpleStack<T>::pop()
{
  return items[top--];
}

注意:每次我试图MAX_SIZE T 时,它都不会接受它。感谢您的任何帮助。

方法push应该返回 SimpleStack<T>& ,而不是 SimpleStack&