2012-10-13 97 views
1

我正在學習如何製作模板類,我遵循這個概念,但遇到了錯誤。我有一個班,我變成了一個模板,但我得到以下錯誤;模板類錯誤C++

simplestack.h(24):錯誤C2955: '的SimpleStack':使用類模板需要模板參數列表

simplestack.h(9):看 '的SimpleStack'

simplestack.h聲明(28):錯誤C2244: '的SimpleStack ::推':無法定義的功能匹配到一個現有的聲明

simplestack.h(12):看的聲明 '的SimpleStack ::推'

這是我的代碼:

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

方法push應該返回SimpleStack<T>&而不是SimpleStack&

+0

在成員函數的定義中。在聲明中,由於注入類名稱並不重要。 – bames53