The*_* do 14 c++ templates function
我确信这是可能的,但我不能这样做,这是:我如何在非模板类中定义函数模板?我尝试过这样的事情:
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)
{
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我得到这个错误的消息:
'错误1错误C2768:'Stack_T :: put':非法使用显式模板参数'
谢谢
int*_*jay 14
不要把<T>后面的函数名称.这应该工作:
template<class T>
void Stack_T::put(const T& obj)
{
}
Run Code Online (Sandbox Code Playgroud)
如果函数定义不在头文件中,这仍然不起作用.要解决此问题,请使用以下方法之一
| 归档时间: |
|
| 查看次数: |
15095 次 |
| 最近记录: |