在声明带有模板的静态方法时出现unresolved external symbol
错误。我已经检查了许多有关堆栈溢出的类似问题,但似乎没有任何建议可以解决。
LoadFromFile
文件中的*.h
在*.cpp
中有声明还有什么可能出问题?
这是我在*.h
文件中声明的方式:
template <class T> static T* LoadFromFile(std::string fileName, bool isDirected);
这是*.cpp
中的样子:
template <class T>
T* Container::LoadFromFile(std::string fileName, bool isDirected)
{
// generating instance of T. Returning T
}
可能的原因(在main.cpp中):
AdjacencyList* al = AdjacencyList::LoadFromFile<AdjacencyList>("dane_droga.txt", false);
完整错误:
严重性代码描述项目文件行抑制状态 错误LNK2019无法解析的外部符号“ public:静态类AdjacencyList * __cdecl Container :: LoadFromFile(class std :: basic_string,class std :: allocator>,bool)”(?? $ LoadFromFile @ VAdjacencyList @@@ Container @@ SAPAVAdjacencyList @@函数_main中引用的V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ _ N @ Z)
代码的语法正确吗?