LNK2019: Unresolved external symbol error - with m

2019-07-22 07:22发布

问题:

I am trying to create a custom List in c++. I've defined it this way:

List.h:

#include "ListItem.h"

#pragma once
template<class T> class List
{
  private:
    ListItem<T>* first;
  public:
    T* GetAt(int);
    ListItem<T>* GetLastListItem();
    void Add(T*);
    void Clear();
};

List.cpp:

#include "stdafx.h"
#include "List.h"

template<class T> T* List<T>::GetAt(int index)
{
    if (!first)
        return 0;

    ListItem<T>* current = first;

    for (int i = 1; i < index; i++)
    {
        current = current->GetNext();
    }

    return current->GetItem();
}

template<class T> L...

main:

List<TestItem> liste;
TestItem ti; //just a int inside.
liste.Add(&ti);

I am getting the following errors:

1>ConsoleApplication1.obj : error LNK2019: unresolved external symbol ""public: void __thiscall List::Add(class TestItem *)" (?Add@?$List@VTestItem@@@@QAEXPAVTestItem@@@Z)" in function"_main".