代码来自C++书籍,如下所示:
为什么这个公共成员Link*next没有typename参数?
template <typename E> class Link {
private:
static Link<E>* freelist;
public:
E element;
Link* next; // this line confused me....
Link(const E& elemval, Link* nextval = NULL)
{
element = elemval; next = nextval;
}
Link(Link* nextval = NULL) { next = nextval; }
void* operator new(size t){
if (freelist == NULL) return ::new Link;
Link<E>* temp = freelist;
freelist = freelist->next;
return temp; // Return the link
}
};
Run Code Online (Sandbox Code Playgroud)
我认为应该是Link<E>* next.
请告诉我它没有模板参数的原因.