error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > &__cdecloperator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Sales_item const &)"

清泛编译

Compiling...main.cppLinking...main.obj :error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > &__cdecloperator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Sales_item const &)"(??6@YAAAV?$basic_ostream@DU$char_traits@D@std@@@std@@AAV01@ABVSales_item@@@Z)

....(省略后续同类错误)

Sales_item.exe - 4 error(s), 0 warning(s)

错误原因之一,在于将inline函数的实现放在了单独的实现文件中了,解决方法:

inline函数的实现放置在头文件中。
 

具体请参考如下:

《高质量C++编程》的作者林锐博士推荐内联函数放在头文件中,认为这是一种良好的编程风格。

《C++ Primer》(第三版,Stanley B Lippman Josee Lajoie 著,潘爱民 张丽译)提到内联函数不同与其它函数的一点是,内联函数应该在头文件中定义。

error LNK2001 inline 内联函数

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部