gpt4 book ai didi

c++ - C++ 中的链接错误 - 实现 indexList

转载 作者:行者123 更新时间:2023-11-27 23:35:19 25 4
gpt4 key购买 nike

Linking... 
Directory.obj : error LNK2019: unresolved external symbol "public: void __thiscall indexList<class entry,100>::read(class std::basic_istream<char,struct std::char_traits<char> > &)" (?read@?$indexList@Ventry@@$0GE@@@QAEXAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) referenced in function _main

获取此错误以及其他与 indexList 实现相关的错误。我已经包含了所有正确的文件,不确定这意味着什么?

indexList.h
indexList.cpp

此外,使用 VS .NET 2003 - 它们位于“源文件”和“头文件”下 但是,我通过删除 indexLish.h 进行了测试,错误没有改变?

最佳答案

您拥有的是一个类模板。这意味着当编译器需要调用一个函数时,它会查看您的模板定义并根据需要生成相应的代码。

例如,如果尝试调用以下代码,可能会出现编译时错误:

template <typename T>
void doSomething(const T& x) {
x->_this_function_does_not_exist_ever_();
}

但只要您不调用 doSomething,就不会出错。

你遇到的问题是你的头文件告诉编译器“嘿,这些函数存在”,但是当编译器试图生成它们时它找不到任何定义。 (您不能“编译”源文件中的定义并将它们链接进来,它们必须对调用者可见。)

最常见的解决方案是在.h.hpp 文件中简单地定义整个类模板。

关于c++ - C++ 中的链接错误 - 实现 indexList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723796/

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