尝试在模板中使用模板对象时出现问题 class
Issue trying to use a template object inside a template class
考虑以下 class 定义...
节点
template <class T> class Node {
private :
T* data;
Node<T>* next;
public :
Node(T* data);
void setData(T* data);
T* getData();
void setNext(Node<T>* next);
Node<T>* getNext();
};
链表
template <class T> class LinkedList {
private :
Node<T>* start;
public :
LinkedList();
void add(Node<T>* node);
bool isEmpty();
};
主要
#include "Foo.h"
int main() {
Foo foo();
Node<Foo> node(&foo);
LinkedList<Foo> linkedList();
linkedList.add(&node);
return 0;
}
编译时会抛出以下错误...
Request for member 'add' in 'linkedList', which is of non-class type 'LinkedList<Foo>()'
我在使用模板方面经验不足,如有任何帮助,我们将不胜感激。
Foo foo();
和 LinkedList<Foo> linkedList();
不是变量而是函数原型。
请改用Foo foo;
和LinkedList<Foo> linkedList;
。
你也可以使用Foo foo = Foo();
和LinkedList<Foo> linkedList = LinkedList<Foo>();
来明确调用构造函数。
考虑以下 class 定义...
节点
template <class T> class Node {
private :
T* data;
Node<T>* next;
public :
Node(T* data);
void setData(T* data);
T* getData();
void setNext(Node<T>* next);
Node<T>* getNext();
};
链表
template <class T> class LinkedList {
private :
Node<T>* start;
public :
LinkedList();
void add(Node<T>* node);
bool isEmpty();
};
主要
#include "Foo.h"
int main() {
Foo foo();
Node<Foo> node(&foo);
LinkedList<Foo> linkedList();
linkedList.add(&node);
return 0;
}
编译时会抛出以下错误...
Request for member 'add' in 'linkedList', which is of non-class type 'LinkedList<Foo>()'
我在使用模板方面经验不足,如有任何帮助,我们将不胜感激。
Foo foo();
和 LinkedList<Foo> linkedList();
不是变量而是函数原型。
请改用Foo foo;
和LinkedList<Foo> linkedList;
。
你也可以使用Foo foo = Foo();
和LinkedList<Foo> linkedList = LinkedList<Foo>();
来明确调用构造函数。