error LNK2019: 无法解析的外部符号 "class std::basic_ostream >

1,VS2013:

错误 1 error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Stack<int> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$Stack@H@@@Z),该符号在函数 _main 中被引用 C:\Users\Administrator\documents\visual studio 2013\Projects\leetcodeTree\leetcodeTree\leetcodeTree.obj leetcodeTree

错误 2 error LNK1120: 1 个无法解析的外部命令 C:\Users\Administrator\documents\visual studio 2013\Projects\leetcodeTree\Debug\leetcodeTree.exe leetcodeTree

error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> >

(链接错误)出错原因:

在类内声明友元函数时,需要在上面加上 模板头 template<class T>。(具体原因还不是很清楚)

解决办法:

(a)在上面加上一行模板头即可。

(b)声明时使用  friend ostream& operator<< <>(ostream& os, const Stack<T>&) 可以解决。(多加了一个 <>)

更加详细的讨论点击这里

上一篇:Node.js简介(转)


下一篇:Node.js—简介