이 오류가 발생하는 방법에 대한 통찰력이있는 사람이 있습니까? 나는이 코드를 가지고 LinkedList의를 C++에서 내 주요 방법에서 템플릿을 만들어 :`List '는 템플릿이 아닙니다
`List' is not a template
나는이 파일을 포함하고있다 :
List<int> list;
list.insert(1, 9);
을 그리고 첫 번째 줄에이 오류를 얻고있다 :
template <typename T>
class List
{
public:
List();
List(const List& aList);
~List();
bool isEmpty() const;
int getLength() const;
void insert(int index, const T& newItem);
void remove(int index);
void retrieve(int index, T& dataItem) const;
private:
struct ListNode
{
T item;
ListNode *next;
};
int size;
ListNode *head;
ListNode *find(int index) const;
};
실용적인 이유로 구현 파일을 게시하지 않지만 필요한 경우 개별 기능을 게시합니다.
List(const List& aList);
을 List(const List<T>& aList);
으로 변경하려고했지만 실제로 변경되지 않았습니다. 템플릿 구문이 혼란 스럽습니다>. <
빈 몸체로 기능을 조롱 할 때 나에게 잘 맞습니다. 오류는 다른 위치에 있어야합니다. 또한 템플릿 코드를 .cpp 파일에 넣지 마십시오. 컴파일러는 인스턴스화해야하는 정확한 코드를 알아야하므로 헤더에 있어야합니다. – Xeo
g ++를 사용하여 링크 시간에 정의되지 않은 함수를 모듈로 컴파일합니다. –
헤더와 별도의 파일에 구현되어 있습니까? – jonsca