Ich habe eine Klasse wieFehler LNK2019: nicht aufgelöstes externes Symbol „public: __thiscall
template <class T>
class LinkedListItem
{
public:
LinkedListItem(T value);
LinkedListItem(const LinkedListItem<T>& rhs);
T getValue(void);
LinkedListItem<T>& getNext(void);
void setNext(LinkedListItem<T>& next);
LinkedListItem<T>& operator=(const LinkedListItem<T>& rhs);
~LinkedListItem();
private:
T _value;
LinkedListItem& _next;
};
Ich versuche, einen Komponententest wie
TEST_CLASS(LinkedListUnitTests)
{
public:
TEST_METHOD(Add_to_An_Empty_Linked_List)
{
LinkedListItem<int> item(1);
}
//private:
};
zu schreiben, wenn ich versuche, nur den oben genannten Code zu bauen Ich bekomme den hässlichen Fehler -
Fehler LNK2019: unaufgelöst externes Symbol "public: __thiscall cpp :: libraries :: Datenstrukturen :: LinkedListItem :: LinkedListItem (int)" (?? 0? $ LinkedListItem @ H @ Datenstrukturen @ Bibliotheken @ cpp @@ QAE @ H @Z) in Funktion referenziert "public: void __thiscall CppLibrariesTests :: LinkedListUnitTests :: Add_to_An_Empty_Linked_List (void)"? (Add_to_An_Empty_Linked_List @ LinkedListUnitTests @ CppLibrariesTests @@ QAEXXZ)
Ich bin mit Visual Studio 2012
Interessanterweise Wenn ich eine Vorlage in der Unit-Test-Klasse wie unten hinzufügen, verschwindet der Kompilierungsfehler, aber die Tests werden nicht erkannt und ich kann sie nicht ausführen.
template<class T>
TEST_CLASS(LinkedListUnitTests){..}
Ich versuche, etwas sehr dumm tue abholen C++ nach langer Zeit so wird es mich nicht überraschen, wenn ich. Irgendwelche Gedanken irgendjemand?
Mögliches Duplikat [Warum Templates kann nur in der Header-Datei implementiert werden?] (Http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in -Die Header-Datei). –