一个奇怪的异常异常4error LNK1120: 3 个无法解析的外部命令G:\visual studio2010\visual studio 2010

一个奇怪的错误错误4error LNK1120: 3 个无法解析的外部命令G:\visual studio2010\visual studio 2010
错误 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 Sales_item const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVSales_item@@@Z),该符号在函数 _main 中被引用 G:\visual studio2010\visual studio 2010 编程实例\lianxi2\lianxi2\sales_item.obj lianxi2
错误 2 error LNK2019: 无法解析的外部符号 "class Sales_item __cdecl operator+(class Sales_item const &,class Sales_item const &)" (??H@YA?AVSales_item@@ABV0@0@Z),该符号在函数 _main 中被引用 G:\visual studio2010\visual studio 2010 编程实例\lianxi2\lianxi2\sales_item.obj lianxi2
错误 3 error LNK2019: 无法解析的外部符号 "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Sales_item &)" (??5@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV01@AAVSales_item@@@Z),该符号在函数 _main 中被引用 G:\visual studio2010\visual studio 2010 编程实例\lianxi2\lianxi2\sales_item.obj lianxi2
C/C++ code

#include "Sales_item.h"
#include <iostream>
#include <string>
using namespace std;
inline
    Sales_item operator+(const Sales_item& lhs, const Sales_item& rhs) 
{
    Sales_item ret(lhs);  // copy lhs into a local object that we'll return
    ret += rhs;           // add in the contents of rhs 
    return ret;           // return ret by value
}
inline
    bool operator==(const Sales_item &lhs, const Sales_item &rhs)
{
    // must be made a friend of Sales_item
    return lhs.units_sold == rhs.units_sold &&
        lhs.revenue == rhs.revenue &&
        lhs.same_isbn(rhs);
}

inline bool 
    operator!=(const Sales_item &lhs, const Sales_item &rhs)
{
    return !(lhs == rhs); // != defined in terms of operator==
}

using std::istream; using std::ostream;

// assumes that both objects refer to the same isbn
inline
    Sales_item& Sales_item::operator+=(const Sales_item& rhs) 
{
    units_sold += rhs.units_sold; 
    revenue += rhs.revenue; 
    return *this;
}

// assumes that both objects refer to the same isbn


inline
    istream& operator>>(istream& in, Sales_item& s)
{
    double price;
    in >> s.isbn >> s.units_sold >> price;
    // check that the inputs succeeded
    if (in)
        s.revenue = s.units_sold * price;
    else 
        s = Sales_item();  // input failed: reset object to default state
    return in;
}

inline
    ostream& operator<<(ostream& out, const Sales_item& s)
{
    out << s.isbn << "\t" << s.units_sold << "\t" 
        << s.revenue << "\t" <<  s.avg_price();
    return out;
}

inline
    double Sales_item::avg_price() const
{
    if (units_sold) 
        return revenue/units_sold; 
    else 
        return 0;
}



感觉莫名其妙呀,代码都没写错呀!谢谢大家了

------解决方案--------------------
你上面的代码没有被编进去。
------解决方案--------------------
重建所有