gpt4 book ai didi

c++ - 错误 LNK2019 : unresolved external symbol "public: __thiscall

转载 作者:行者123 更新时间:2023-11-30 05:29:30 25 4
gpt4 key购买 nike

我有一个类

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;
};

我正在尝试编写一个单元测试

TEST_CLASS(LinkedListUnitTests)
{
public:

TEST_METHOD(Add_to_An_Empty_Linked_List)
{
LinkedListItem<int> item(1);
}
//private:

};

当我尝试构建上面的代码时,我得到了丑陋的错误 -

错误 LNK2019:未解析的外部符号“public:__thiscall cpp::libraries::datastructures::LinkedListItem::LinkedListItem(int)”(??0?$LinkedListItem@H@datastructures@libraries@cpp@@QAE@H @Z) 在函数“public: void __thiscall CppLibrariesTests::LinkedListUnitTests::Add_to_An_Empty_Linked_List(void)”中引用 (?Add_to_An_Empty_Linked_List@LinkedListUnitTests@CppLibrariesTests@@QAEXXZ)

我正在使用 Visual Studio 2012。

有趣的是,如果我像下面这样在单元测试类中添加模板,编译错误就会消失,但测试不会被发现,我无法运行它们。

template<class T>
TEST_CLASS(LinkedListUnitTests){..}

经过很长一段时间后,我一直在努力学习 C++,因此如果我在做一些非常愚蠢的事情,我不会感到惊讶。任何人有什么想法吗?

最佳答案

理想情况下,模板必须内联实现。编译器的第二遍无法重新使用具有实现的 CPP 文件。或者,您还需要#include the CPP 文件。

Refer this article

关于c++ - 错误 LNK2019 : unresolved external symbol "public: __thiscall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com