请问一个关于类的友元函数的有关问题

请教一个关于类的友元函数的问题
小弟刚开始学C++,自己写了个类,重载输入输出操作符的时候出现了问题,想请大家帮忙看看,以下是问题描述:
  某书店以文件形式保存其每一笔交易。每一笔交易记录某书本的销售情况,含有ISBN(国际标准书号,世界上每种图书的唯一标识符)、销售册数和销售单价。
  下面是我自己为其写的一个类:
[code=C/C++][/code]
#include<iostream>
#include<string>
using namespace std;
class Sales_item
{
string isbn;
unsigned unit_sold;
double revenue;
public:
Sales_item()
{
isbn;
unit_sold=0;
revenue=0.0;
}
bool same_isbn( const Sales_item &trans)
{
if(isbn==trans.isbn)
return true;
else
return false;
}
Sales_item operator=(const Sales_item &trans)
{
unit_sold=trans.unit_sold;
revenue=trans.revenue;
return *this;
}
Sales_item operator+(const Sales_item &trans)
{
Sales_item temp;
temp.unit_sold=unit_sold+trans.unit_sold;
temp.revenue=(unit_sold*revenue+trans.unit_sold*trans.revenue)/(temp.unit_sold);
return temp;
}
  friend ostream& operator<<(ostream &out,const Sales_item &trans);
friend istream& operator>>(istream &in,Sales_item &trans);
};
ostream& operator<<(ostream &out,const Sales_item &trans)
{
out<<trans.isbn;
out<<trans.unit_sold<<trans.revenue<<endl;
return out;
}
istream& operator>>(istream &in,Sales_item &trans)
{
cin>>trans.isbn;
cin>>trans.unit_sold>>trans.revenue;
return in;
}
编译的时候提示输入输出操作符重载函数不能访问类的私有成员,但是我已经将其声明为友元函数了,请大家帮帮忙,看看问题出在哪,小弟不胜感激,谢谢!

------解决方案--------------------
珍惜生命,远离VC6