我確定它是可能的,但我不能做到這一點,即:如何在非模板類中定義函數模板?我嘗試過這樣的事情:非模板類中的函數模板
class Stack_T
{
private:
void* _my_area;
static const int _num_of_objects = 10;
public:
// Allocates space for objects added to stack
explicit Stack_T(size_t);
virtual ~Stack_T(void);
// Puts object onto stack
template<class T>
void put(const T&);
// Gets last added object to the stack
template<class T>
T& get()const;
// Removes last added object from the stack
template<class T>
void remove(const T&);
};
template<class T> //SOMETHING WRONG WITH THIS DEFINITION
void Stack_T::put<T>(const T& obj)
{
}
但它不起作用。我得到這個錯誤消息:
「錯誤1錯誤C2768:‘Stack_T ::把’:非法使用顯式模板參數」
謝謝
我tryied這一點,但我得到一個錯誤: 「錯誤錯誤LNK2019:無法解析的外部符號 「市民:無效__thiscall Stack_T ::把(INT常量和)」(?? $放3 H @ Stack_T @@ QAEXABH @ Z)在函數_wmain中引用\t Stack_of_Objects.obj ' –
2009-11-25 19:56:24