1

テンプレートクラスの作成方法を学んでいて、その概念に従いますが、エラーが発生します。テンプレートに変換したクラスがありますが、次のエラーが発生します。

simplestack.h(24):エラーC2955:'SimpleStack':クラステンプレートの使用にはテンプレート引数リストが必要です

simplestack.h(9):「SimpleStack」の宣言を参照してください

simplestack.h(28):エラーC2244:'SimpleStack :: push':関数定義を既存の宣言と一致させることができません

simplestack.h(12):「SimpleStack::push」の宣言を参照してください

これは私のコードです:

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にチャンスを与えるたびに、それは受け入れられません。助けてくれてありがとう。

4

1 に答える 1

4

メソッドは、ではなく、pushを返す必要があります。SimpleStack<T>&SimpleStack&

于 2012-10-13T18:02:13.260 に答える